LINUX



2010 8月17日

PGDGレポジトリを追加する

純正レポジトリに postgresql を上書きされない様に無効化しておく。
/etc/yum.repos.d/CentOS-Base.repo を編集のうえ、[base]と[update]のそれぞれのセクションに、
exclude=postgresql*
を追記する。

http://yum.pgsqlrpms.org/reporpms/repoview/letter_p.group.html
から対象OS&バージョンを選んでRPMをダウンロード

wget http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm
rpm -ivh pgdg-centos-8.4-2.noarch.rpm

/etc/yum.repos.d/pgdg-84-centos.repo が作成される。

# cat /etc/yum.repos.d/pgdg-84-centos.repo
[pgdg84]
name=PostgreSQL 8.4 $releasever - $basearch
baseurl=http://yum.pgsqlrpms.org/8.4/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg84-source]
name=PostgreSQL 8.4 $releasever - $basearch - Source
failovermethod=priority
baseurl=http://yum.pgsqlrpms.org/srpms/8.4/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

必要なpostgresqlのパッケージをインストール&アップデート。

# yum install postgresql postgresql-server postgresql-devel compat-postgresql-libs postgresql-libs postgresql-contrib

–> Running transaction check
–> Processing Dependency: libpq.so.4 for package: perl-DBD-Pg
–> Finished Dependency Resolution
Error: Missing Dependency: libpq.so.4 is needed by package perl-DBD-Pg

エラーが出てインストール出来ない。

http://blog.motoo.net/2009/03/13/172626
を見て、パッケージを削除しているので試す。

# yum remove perl-DBD-Pg

再度インストールを試すと、どうやら成功した。

データベースを初期化

# service postgresql initdb

/var/lib/pgsql/pgstartup.log を見てエラーが起きていないことを確認。
前バージョンの古いデータがあると失敗する。

データディレクトリは /var/lib/pgsql/data
設定ファイル /var/lib/pgsql/data/postgresql.conf

サービス開始

# service postgresql start

自動起動の設定

# chkconfig postgresql on

自動起動の確認(ランレベル2~5のonを確認)

# chkconfig --list postgresql
postgresql          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

参考:CentOS 5.3 に postgresql-8.4 をインストール | お試しlog4

認証方式
デフォルトではパスワードによる接続は出来ない。
postgresユーザー パスワードの設定
/var/lib/pgsql/data/postgresql.conf
/var/lib/pgsql/data/pg_hba.conf

参照:PostgreSQL Server のセットアップ ~ CentOS-4.5







2010 6月30日

Perl の $ENV{PATH} は何処を参照しているのか?

例えば bayon を perl から使うのに Text::Bayon モジュールを利用したら
sh: bayon: command not found
と言うエラーログが残る。

コマンドが見つからない = パスが通っていない、と言う事なんだろうけど、apache を2.2 にしたらパスが変わったのか apache2.0 の時に使えた Lingua::JA::Summarize を使用するスクリプトも

sh: mecab: command not found

となる。

mecab も bayon も /usr/local/bin にインストールしてあるのだけれど、$ENV{PATH} を調べてみると、
$ENV{PATH} = /sbin:/usr/sbin:/bin:/usr/bin
となっており、/usr/local/bin にはパスが通っていない。

この 環境変数はどこを参照しているのかまさに以下のページのような迷い方をした。

apacheの起動ユーザーにPATH通しときゃいいのか?とか、httpd.confにそういう設定が?とか、もしかしてPHP.iniにそんな設定が?とか思ってたんですが、全部ハズレ。

Apache2の環境変数PATHを設定する – masahilog

SetEnvやPassEnvディレクティブを追加してみたり、. bash_profile を変更したり、散々いろいろ試してみたけど、上記ページのおかげでヒントが得られたのでメモ。

CentOS系(というかRedhat系、だろうか)は/etc/sysconfig/httpdがそれに該当するような。探しても調べてもenvvarsの影も形も無かったけど、/etc/init.d/httpdの冒頭箇所で/etc/sysconfig/httpdがあったらそれを評価してからhttpdが起動するようになってる。なんでこんな仕様なんだろうか。

追記でこのように書かれていたのだけれど、/etc/rc.d/init.d/httpd を見てみると、 /etc/sysconfig/httpd のみではなく、 /etc/rc.d/init.d/functions も参照している。

/etc/rc.d/init.d/functions を見ると、ビンゴでした。

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH

ここのパスを変更して、保存。

注意点としては、apache を再起動ではなく 停止してから起動する事。
再起動では反映されませんでした。

ちなみに CentOS (4.x 5.x) での話ですので他のディストリビューションでは違うかもしれません。







2010 6月16日

utterramblings レポジトリを使い apache を2.2.15 へ yum でアップデートする。
phpも5.2.13 へアップデートされる。
remiレポジトリでもいいけど PHPが5.3になってしまうので。

utterramblingsレポジトリ追加

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

/etc/yum.repos.d/CentOS-Base.repo の一番最後に追記する。

# vi /etc/yum.repos.d/CentOS-Base.repo

[utterramblings]
name=Jason Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
priority=1

apache をアップデート

# yum --enablerepo=utterramblings update httpd

設定ファイルはそのままでは使えないので適時修正する事。
新しいファイル
/etc/httpd/conf/httpd.conf.rpmnew
/etc/httpd/conf.d/ssl.conf.rpmnew
を元にして両方を修正。

PHP関連のインストール

php も5.2.13 にアップデートされるので関連するものをアップデートもしくはインストール。
phpMyAdmin で

mcrypt 拡張をロードできません。PHP の設定を確認してください

と言うエラーが出るので php-mcrypt をアップデート。。

yum --enablerepo=utterramblings update php-mcrypt

httpd-devel が必要だったのでインストール

yum --enablerepo=utterramblings install httpd-devel

DOMを使ってXMLを操作したいので php-xml をインストール

yum --enablerepo=utterramblings install php-xml

参考:http://d.hatena.ne.jp/rytich/20100330/1269936570
5.3へのアップデートも書かれている。