CentOS 5.9 で git をインストールする

CentOS 5.9 には、標準状態ではyumでgitをインストール出来ない模様。

なので、RPMforgeを使ってyumにリポジトリを追加してからgitをインストールして見ます。

http://repoforge.org/use/
このページを参考に、該当のrpmファイルをダウンロードします。

ダウンロードしたパッケージファイルをインストールします。

yumで検索してみます。

見つかったので、yumでgitをインストールします。

CentOSで起動しているサービスを管理する

CentOSで起動しているプロセス(サービス)を管理したい。

登録されているサービスを一覧表示する

サービスとして登録したい

登録しただけではOS起動時に自動的に起動しないので、自動起動を設定する

自動起動しないように設定する

サービスを削除する

公開鍵認証の設定

公開鍵認証の大まかな手順

○ログインする側

公開鍵の作成
[shell]ssh-keygen -t rsa[/shell]

~/.ssh/id_rsa.pub
というファイルができあがるので、このファイルをログインされる側のサーバに何らかの手段で転送する。

○ログインされる側

公開鍵の設置

authorized_keys」ファイルにログインする側で作成した公開鍵の中身を貼り付けます。

Linuxのコンソール上で定期的な処理を簡単に書く

Linuxのコンソール上で、たとえば、特定のプロセスのメモリ使用量を観察したい場合

毎回手でpsコマンドを打つのは面倒になる

そんな時は、whileでコマンドを回そう

これをコンソール上で入力すると、処理が繰り返される。

参考までに、繰り返す処理は、

clear
コンソール上を掃除

ps aux
起動中のプロセスを一覧

sleep 1
1秒間待機

cronの設定

設定方法

cron編集用コマンドを実行

以下のような書式で実行するタスクを登録

フィールド 指定可能な値
各行の最初の数値5つは左から順に以下の意味があります。

0-59
0-23
月内日 1-31
1-12 (もしくは名前)
曜日 0-7 (0 と 7 は日曜日)

リストと範囲
各フィールドには、リスト形式で複数指定したり、範囲を指定したり出来ます。

リスト 分のエリアに「0,15,30,45」と設定すれば、15分おきに実行します。
範囲 曜日のエリアに「1-5」と設定すれば、月曜日~金曜日に実行します。
共存 時のエリアに「9-17,20」と設定すれば、9時から17時と20時に実行します。
間隔値 時のエリアに「1-5/2」と設定すれば、1時、3時、5時に実行します。

サンプル

  • 1時間ごとに実行
  • 毎日5時に実行
  • 毎週日曜日の1時に実行
  • 毎月1日の1時に実行
  • 12月31日の19:00に実行

rpmファイルを簡単に作成する

CentOSでは、なかなか新しいパッケージが配信されない。

ImageMagickとか、Rubyとか、SQLiteとか。。

なので、自前でrpmファイルを作ろうと思った。

方法は、checkinstallというツールを入れる。

ホームページは

http://www.asic-linux.com.mx/~izto/checkinstall/index.php

で、ソースコードをダウンロード

wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz

ファイルの解凍とコンパイル

tar xvfz checkinstall-1.6.2.tar.gz

cd checkinstall-1.6.2

make

make install

これで、/usr/local/sbin/checkinstall

が生成される

次に、今回はSQLiteをダウンロード

ホームページ

http://www.sqlite.org/

から

autoconfの方をダウンロード

wget http://www.sqlite.org/sqlite-autoconf-3070603.tar.gz

ファイルの解凍

tar xvfz sqlite-autoconf-3070603.tar.gz

mv sqlite-autoconf-3070603 sqlite

cd sqlite

./configure

これでsqliteディレクトリにMakeFileが出来上がったので

checkinstallを実行

checkinstall

あとは、yum –nogpgcheck install /usr/src/redhat/RPMS/i386/sqlite-3.7.6.3-1.i386.rpm

で、インストールされる

※sqlite-develはどうやって作るか分からない。。。。。。

 

CentOSでDHCPのIPアドレスを再取得する

DHCPでIPアドレスを取得していて、再取得させたい場合

dhclientコマンドを使用する

まずは現在のIPアドレスを解放する

次に取得処理を実行する

a

a

a

a

sed で、ファイルの中身を一括して置換する

sedを使ってファイルの中身を一括して置換する時の書き方

ファイルには

id,携帯電話番号(ハイフンなし)

[text]1,09000000000
2,09000000001
3,09000000002[/text]

という感じで入っている

これを、

[sql]update users set mobile_phone = ‘[携帯電話番号(ハイフンあり)]’ where id = [id];[/sql]

という形に変換したい。

[shell]sed -e "s/\([^,]*\),\([0-9]\{3\}\)\([0-9]\{4\}\)\([0-9]\{4\}\)/update users set mobile_phone = ‘\2-\3-\4’ where id = \1;/" 電話番号.csv[/shell]

cronのログを有効に

cronのログは、CentOSではデフォルトで出力が有効になっているが

Debianの場合は無効になっている(場合がある?)

ので、ログを出したいときは有効にする

以下のファイルを開き

/etc/syslog.conf

の行のコメントを外す

WordPressのためのPHPコンパイル

WordPressのフル機能を動かすためには

必要な機能を含んだ状態でPHPをコンパイルする必要がある

たとえば、WordPressのバージョンアップには、zlib対応が必要だ。

そこで、コンパイル時のオプションを何を入れたらいいかを、書いてみる

まずはPHPのダウンロード

解凍

コンパイルオプション指定

Apache-ソースからコンパイル

http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.8.tar.bz2 の取得

httpd-2.2.8.tar.bz2 の解凍

httpd-2.2.8 のコンパイル

configureオプション
–enable-mods-shared=most
モジュールを設定でON or OFF出来るように個々に切り出す設定
mostの所にallを指定すると、モジュールすべてが対象
sslはallに含まれないようなので、ssl対応にするときは”all ssl”とする必要がある

–enable-mods-shared=”all ssl”

–enable-proxy
mod_proxyを有効にする場合に指定
httpd-2.2.8 のインストール

Subversionの認証をRedmineのアカウントで認証する

今回はhttpdをコンパイルして入れた環境で

Subversionの認証をRedmineのアカウントでやりたい。

という事で、不真面目なやり方で実現。

CentOSにはあらかじめ少し古いhttpdが入っているため

まずはyumでmod_auth_mysqlを入れる。

そうすると

/etc/httpd/modules にmod_auth_mysql.soファイルが入るので

このファイルをコンパイルして入れたhttpdのmodulesにコピーする

cd /etc/httpd/modules

cp mod_auth_mysql.so /usr/local/apache/modules

次に

moduleファイルをロードするのだが

ロードする際に

httpd.confのLoadModuleのリストの一番上に書くのが問題が起きないようだ。

mod_auth_basic.soより前にmod_auth_mysql.soを読み込む必要があるらしい。

Subversionのリポジトリの設定は

とする。

Redmineを立てたい

Redmineとはプロジェクト管理ツールで、tracなどと同等の物か、それ以上なので

自マシンに入れてみようと思う。

※本当はすでに何年も前から使っているが、記事として書くため

MySQLをインストール

今回はyumで簡単に入れてしまう

Rubyをインストール

http://www.ruby-lang.org/ja/

から1.8.7の最新をダウンロード

ダウンロードしたものを解凍

インストールパスは

/usr/local/rubyにする

/etc/profile

export PATHしているようなところの直前で

を追加

gemのインストール

http://rubygems.org/

よりダウンロード

インストールする

Redmineをダウンロード

http://www.redmine.org/

/usr/local/redmineに展開

gemでmysqlをインストール

gemでRails 2.3.5をインストール

MySQLにredmine用データベースを作成

Redmineの設定

database.ymlファイルを開いてproduction部分のデータベース名、データベースアカウントの情報を修正

rake config/initializers/session_store.rb

rake db:migrate RAILS_ENV=production

rake redmine:load_default_data RAILS_ENV=production

以下のように表示されるので、jaを入力してリターン

Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja

これで初期設定は完了

gemでPassengerをインストール

passengerのコンパイル

と聞かれるので、リターン

コンパイルが終了すると、設定ファイルの書き方が表示される

/usr/local/apache/conf/extra/passenger.confファイルを作成

httpd.confファイルの編集

httpd.confの最後に

を追加

httpd.confの中のDocumentRootに設定してあるディレクトリに移動

redmine用のシンボリックリンクを作成

httpdサーバの起動

http://***.***.***.***/redmineにアクセスして表示されれば完了

初期の管理ユーザは

admin/admin

だそうです。

a

SVNで、trunkからbranchesへ、またはbranchesからtrunkへ切り替える際に間違えて一つ上のディレクトリなどでswしてしまったときの対象法

SVNで、trunkからbranchesへ、またはbranchesからtrunkへ切り替える際に

svn sw http://localhost/test/trunkなんてやったりしますが

この時、trunkを抜かしてしまうと、大変なことになります。

もしやってしまったら、慌てずに再度正常なURLでsvn swコマンドを実行します。

もし、ディレクトリが上書きできないというエラーが出たりしたら

svn sw –force http://localhost/test/trunkという感じで強制的に実行することが出来ます。

これで、SVNコマンド自体は正常に終了すると思います。

が、これで終わりません(たぶん)

svnコマンドをctl+cなどで中断している場合、svnワークスペース内のすべてが切り替わってるわけではありません。

もしかしたら、ディレクトリの情報は正常でも、配下のファイルが別を見てる可能性があります。

なので、svn upもかけておきましょう。

svn swは同じところを何度もたたいてもエラーにはならないので

svn swとsvn upを交互に何度かたたいたりして、両方問題なければ、修復完了です。

Subversionのサーバを1.6.*系で立てたい

Subversionのサーバを立てたい。

CentOSのパッケージでは1.4.2とかいう古いものであまり使いたくない。

ということで、Subversionをソースからコンパイルすることにした。

  • Subversionは1.6系の最新を使う予定。
  • Apacheは2.2系の最新を使う予定。
  • berkeley-dbは4.4系の最新を使う予定。
    ※Subversionが求める最新が4.4あたりだった気がするので。
    ※あと、apacheとsubversionでbdbのバージョンが合わないとうまく動かない

ということで、まずはberkeley-dbをダウンロード

Oracleサイトから。

ダウンロードしたら解凍

こいつのコンパイルはほんの少しだけ面倒で

とする必要がある。

次に/etc/ld.so.conf.dにberkeleyDB.4.4.confファイルを作成し

を追加する。追加したら

を実行

あまり面倒ではない????

まぁ良い。

そしたら、Apacheのインストール

httpd-2.2.17.tar.bz2をダウンロードし解凍する

次はSubversion

SubversionはApacheのプロジェクトになったので、Apacheサイトからダウンロード

以下の二つが必要

  • subversion-1.6.15.tar.bz2
  • subversion-deps-1.6.15.tar.bz2

二つをまず解凍

これで、subversion-1.6.15というディレクトリが出来上がる。

そしたらコンパイル

※with-berkeley-dbオプションはBerkeleyDBの標準インストールディレクトリを参照してリンクする。(今回は/usr/local/BerkeleyDB4.4)

マシン起動時にapacheを起動するようにする

最初の時点でhttpdというものはパッケージで入っているので

この起動用設定ファイルを流用する

/etc/init.d/httpdを/etc/init.d/apacheにコピー

/etc/init.d/apacheを開き

apachctlのパスを/usr/local/apache/bin/apachctlに変える

pidのファイル名を/usr/local/apache/logs/httpd.pidに変更

ロックファイルのファイル名を変更

最後に起動項目にapacheを追加

apacheを自動起動に設定

CentOS で ビープ音をなくす

vi /etc/inputrc

#コメントを外す
set bell-style none

デスクトップのメニューから「システム」→「管理」→「ログイン画面」を選択し「アクセシビリティ」タブを開いて「ログイン画面を表示した時」のチェックを外す

#vi /root/.vimrc

set visualbell
を書く