2016-06-21 Tue

[別の年の同じ日: 2003 2006 2007 2008 2009 2010 2012

Serverspec で INI ファイルをテストする はてぶ

先日、JSON や YAML のファイルをテストする

- its(:content_as_json)
- its(:content_as_yaml)

のPR を送り、INI ファイルも同じようなものが欲しいと思ったので、
とりあえず、以下のような感じで spec_helper.rb に書いてみた。

[ Read More... ]

2016-06-10 Fri

[別の年の同じ日: 2001 2003 2006 2007 2008 2009 2010 2011

Solaris 11.3 の mod_rewrite で一部の文字がマッチしない はてぶ

とりあえず、メモだけ。

- Solaris 11.3 の mod_rewrite で、Solaris 11.2 ではマッチしていた文字の内、
  一部の文字が正規表現にマッチしない
- mod_rewrite の正規表現は PCRE
- Solaris 11.2 と Solaris 11.3 では PCRE のバージョンが異なる
- 正規表現の前に '(*UTF8)' をつけて UTF-8 mode にすることで解決する

2016-03-24 Thu

[別の年の同じ日: 2003 2006 2007 2008 2010 2011 2012 2013 2015

Nagios 4.1.1 を Solaris でビルド はてぶ

Nagios 4.0 系が Solaris でビルドできない件 [2014-02-17-1] から、
Nagios のアップデートをちゃんと確認していなかったが、
4.1.1 が出ていたので Solaris 上でビルドできるか試してみた。

結果としては、spec file のバージョン番号を変えるくらいで、
あっさりとビルドできた。

あとは、パッケージ構成をどうするかとか考えてパッケージ作成。

2015-11-10 Tue

[別の年の同じ日: 2002 2004 2005 2006 2007 2008 2009 2010

Ruby で RAD を叩く はてぶ

RAD (Remote Administration Daemon) を REST API 経由で使ってみた ([2015-11-09-1]) ので
次はスクリプトから REST API を叩くということで、Ruby でざっと書いてみた

[ Read More... ]

2015-11-09 Mon

[別の年の同じ日: 2003 2004 2005 2006 2007 2008 2009 2010

RAD (Remote Administration Daemon) を REST API 経由で使ってみる はてぶ

ちょっと RAD (Remote Administration Daemon) を触っておこうということで、
Oracle Solaris 11.3 で触ってみたメモ。

[ Read More... ]

Referrer (Inside):
[2015-11-10-1] Ruby で RAD を叩く

2015-11-06 Fri

[別の年の同じ日: 2002 2003 2004 2006 2007 2008 2009

Fedora 23 にアップデート はてぶ

https://fedoraproject.org/wiki/Upgrading_Fedora_using_package_manager

の 'Fedora 22 -> Fedora 23'

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-23-$(uname -i)
# dnf upgrade
# dnf clean all
# dnf --releasever=23 --setopt=deltarpm=false distro-sync

に従ってアップグレード。

pkgbuild による依存関係のチェックを止める はてぶ

pkgbuild はパッケージに含まれるファイルを調べて、
依存するものを見つけてくれるが問題がある。

パッケージに含まれるファイルに '#!/usr/bin/env perl' などとあると、
perl を含むパッケージを

dependency discovered: depend fmri=pkg://solaris/runtime/perl-512@5.12.5,5.11-0.175.3.0.0.30.0 fmri=pkg://solaris/runtime/perl-584@5.8.4,5.11-0.175.3.0.0.30.0 type=require-any

のように見つけて 依存関係を追加する。

この時生成される'~/packages/PKGMAPS/manifests/${IPS_PACKAGE_NAME}.manifest' で、
上記の依存関係部分の書き方がおかしく、publish に失敗する(1.3.105固有の問題?)。

ふと、RPM は依存関係を調べることをやめさせられるし、
pkgbuild でもできるんじゃないかと思って grep かけてたら以下が見つかった。

$ ag %_use_internal_dependency_generator /usr/lib/pkgbuild-1.3.105
/usr/lib/pkgbuild-1.3.105/macros
125:%_use_internal_dependency_generator     1

/usr/lib/pkgbuild-1.3.105/pkgbuild.pl
2057:    if ($package->eval ('%_use_internal_dependency_generator') eq "1") {

とりあえず、'%_use_internal_dependency_generator' を '1' 以外にすればよさそう。

もう少し grep していたら

$ ag _read_macros /usr/lib/pkgbuild-1.3.105
/usr/lib/pkgbuild-1.3.105/rpm_spec.pm
132:    _read_macros ('/usr/lib/pkgbuild-1.3.105/macros');
134: _read_macros ("${_homedir}/.pkgbuildmacros");
215: # fill with values read from the macros file in _read_macros()
251:sub _read_macros ($) {

というのが見つかったので、"${_homedir}/.pkgbuildmacros" に書けばよさそう。

man pkgbuild を見ると

       ~/.pkgbuildmacros
              user defined macros. The format of this file  is  on  definition
              per line in the following format:
              %macro_name value

とあったので間違いなさそう。

~/.pkgbuildmacros に

%_use_internal_dependency_generator 0

と書いてビルドしたところ、internal_dependency_generator が動作せず、
問題なくビルドが終了した。

ちなみに、依存関係の生成は以下のように ips-dependency-generator というコマンドを使っている。

my @autodeps = `/usr/lib/pkgbuild-1.3.105/ips-dependency-generator -R '$buildroot' -f $tmpfile`;

2015-10-27 Tue

[別の年の同じ日: 2002 2003 2004 2006 2007 2008 2009 2010

Solaris 上で PHP を --enable-intl 付きでビルドする はてぶ

PHP で intl を使いたいという話が出てきたので、
Solaris 上で PHP を --enable-intl 付けてビルドしたところ、

pkgbuild: cc: -W option with unknown program no-write-strings

のようなエラーがでてビルドに失敗。

この cc は Solaris Studio の cc で gcc ではないので、
gcc の '-Wno-write-strings' というオプションが渡されているため
エラーになっているということはすぐにわかる。

'-Wno-write-strings' は

// 文字列定数の宣言の問題
// gcc4.5.0のg++だと
// deprecated conversion from string constant to 'char*'
// というエラーがでた
// passing -Wno-write-strings to gcc will suppress this warning.
// と書くと、消えるらしい( ↑stringじゃなくて、stringsである事に注意 )

c言語 文字列定数を宣言したり、関数に代入する時の注意 - ながとダイアリー


というもののようなので、Solaris Studio では関係ない。
ということで、./configure で生成された Makefile 内に含まれる
'-Wno-write-strings' を削除してしまう。

とりあえず、手元の環境でビルドできることは確認した。

上の話は 5.5 系。

5.6 系は Solaris Studio でのビルドはあきらめて
GCC を使っている([2015-08-14-1])ので、この件にはひっかからない。

- PHP 5.6.12 を Solaris 11.2 上でビルドする [2015-08-14-1]