Archive for the ‘Linux’ Category

CORESERVERにRedmine 0.8.7をインストール

Redmineはプロジェクトを管理するためのWebアプリケーションです.Ruby on Railsで作成されています.今回は,CORESERVERにRedmine 0.8.7をインストールする手順をまとめます.(実は0.9.0が出ているのだけれどもCORESERVERにインストールすることができなかったためあえて前のバージョンを使っています.RoR2.3.xではcgiによる動作を考慮していない?RubyやRailsに詳しい方教えてください。。。)ちなみに,CORESERVERにインストールしての感想ですが,重くて実用には耐えられない感じです.普段から使用するには相当の我慢が必要だと思います.

構成:

  • サーバ:CORESERVER
  • Ruby:1.8.5

RubyGemsをインストール

$ cd $HOME$ vi .bashrc
export PATH=$HOME/local/bin:$HOME/local/lib/ruby/gem/bin:$PATH
export RUBYLIB=$HOME/local/lib:$HOME/local/lib/ruby
export GEM_HOME=$HOME/local/lib/ruby/gem
$ wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
$ tar zxvf rubygems-1.3.5.tgz
$ cd rubygems-1.3.5
$ ruby setup.rb config --prefix=$HOME/local
$ gem -v

必要なパッケージをインストール
Killedに注意

$ gem install --no-ri --no-rdoc rake sqlite3-ruby
Railsはredmine/vendorに必要なものが入っているため不要
// Killされてしまう場合は個別にパッケージを入れていくといいかも
// それでもだめな場合は,riやRDOCをインストールしない
// gem install --no-ri --no-rdoc rake sqlite3-ruby

RedMineをインストール

$ mkdir $HOME/railsproj
$ wget http://rubyforge.org/frs/download.php/67144/redmine-0.8.7.tar.gz
$ tar zxvf redmine-0.8.7.tar.gz
//ここで作成されたredmine-0.8.7を$REDMINE_HOMEとする
$ cd $REDMINE_HOME
$ chmod -R o+w log tmp
$ cd $REDMINE_HOME/config
$ cp database.yml.example database.yml
$ vi database.yml
# SQLiteを使う場合
production:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000

# MySQLを使う場合
#production:
#  adapter: mysql
#  database: データベース名
#  host: localhost
#  username: ユーザ名
#  password: パスワード
#  encoding: utf8
$ cp email.yml.example email.yml
production:
  delivery_method: :smtp
  smtp_settings:
    address: "127.0.0.1"
    port: 25
    domain: "example.net"
    #authentication: :login
    #user_name: "redmine@example.net"
    #password: "redmine"
$ vi environment.rb
// 下記内容を追記
$LOAD_PATH.push('/virtual/hoge/local/lib')
$LOAD_PATH.push('/virtual/hoge/local/lib/ruby')
ENV['GEM_HOME'] ||= '/virtual/hoge/local/lib/ruby/gem'
ENV['PYTHONPATH'] ||= '/usr/local/bin/python' # mercurialとの連携で必要
ENV['RAILS_RELATIVE_URL_ROOT']=''

# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
ENV['RAILS_ENV'] ||= 'production'

# 以下の行をコメントアウト
#RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION
$ vi boot.rb
# 4行目付近のRAILS_ROOTを以下のように変更
RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
$ cd $REDMINE_HOME
$ rake config/initializers/session_store.rb
$ rake db:migrate RAILS_ENV=production
$ rake load_default_data RAILS_ENV=production
jaを選択

$ cd $REDMINE_HOME
$ chmod -R o+w db
$ cd $REDMINE_HOME/public
$ cp dispatch.cgi.example dispatch.cgi
$ vi dispatch.cgi
#!/usr/local/bin/ruby
$ vi .htaccess
# Optionsの前に以下の行を追加
DirectoryIndex dispatch.cgi
Options +FollowSymLinks

# RewriteRuleの前に以下の行を追加
RewriteBase /
RewriteRule ^$ index.html [QSA]
# サーバ側の設定
$ ln -s $HOME/railsproj/redmine/public $HOME/public_html/example.net

これで,アクセスしてRedmineのページが表示されていればOK

Gitとの連携

$ cd $REDMINE_HOME/lib/redmine/scm/adapters
$ vi git_adapter.rb
# 26行目付近のGIT_BINをgitをインストールしたディレクトリに変更
GIT_BIN = "/virtual/hoge/local/bin/git"

Mercurialとの連携

$ cd $REDMINE_HOME/lib/redmine/scm/adapters
$ vi mercurial_adapter.rb
# 26行目付近のHG_BINをhgをインストールしたディレクトリに変更
HG_BIN = "/virtual/hoge/local/bin/hg"

メールの文字コードをiso-2022-jpに変更

$ cd $REDMINE_HOME
$ ruby script/plugin install git://github.com/kusakari/actionmailer_ja.git

CentOS 5.4 に mercurial をインストール

CentOS 5.4 に mercurial をインストールする方法です.今回は,python の easy_install を使ってインストールしました.以下,手順です.

  1. # yum install gcc python python-devel python-setuptools
  2. # easy_install mercurial

たったこれだけで hg コマンドが使えるようになります.外部リポジトリを追加しないで,既存のリポジトリだけでインストールできるのがいいですね.各環境への移植やインストール周りは git よりもだいぶ親切に感じます.

mailmanでsenddigestsなエラーがメールが送られてくる

mailmanを運用しているときに,突然以下の件名のメールが送られてくるようになった.

Cron <mailman@ホスト名> /usr/lib/mailman/cron/senddigests

で,原因を調べてみると,mailmanのオプションで「まとめて配信」をやろうとして失敗しているらしい.今回はまとめて配信をできないようにすることで対応した.

  1. /var/lib/mailman/lists/メーリングリスト名/digests.mboxファイルを削除
  2. mailmanのweb管理画面から「まとめて配信」オプションをいいえ
  3. /etc/mailman/mm_cfg.pyに「DEFAULT_DIGESTABLE=No」を追加

1により,「まとめて配信」のメールが削除される.2により,既存のメーリングリストでまとめて配信ができなくなる.3により,新規でメーリングリストを作成した際のまとめて配信オプションがいいえになる.

参考:http://mm.tkikuchi.net/pipermail/mmjp-users/2009-February/002487.html

Fedora 11にFFmpegをインストール

タイトルの通りです.Fedora 11にFFmpegをyumでインストールする方法です.Fedora以外にもCentOSでも同じ方法で大丈夫なようです.

  1. yumにgpgkeyをインポートする
    # rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
  2. yumのリポジトリを追加する
    # vi /etc/yum.repos.d/atrpms.repo
     [atrpms]
     name=Fedora Core $releasever - $basearch - ATrpms
     baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
     gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
     gpgcheck=1
  3. yumでffmpegをインストールする
     # yum -y install ffmpeg

以上です.

参考:http://atrpms.net/

tar と pipe と ssh で高速バックアップ

バックアップと言えば,scp や rsync が有名ですが,tar + pipe + sshで高速バックアップする方法があるようです.なので,忘れないうちにメモを残す.

tar zcf - <src_dir> | ssh <user@example.net> tar zxvf - -C <dst_dir>
  • <src_dir> には,ローカルの転送したいディレクトリ名
  • <user@example.net> には,転送先の host 名と user名
  • <dst_dir> には,リモートの転送したいのディレクトリ名

ローカルの方で tar 圧縮を行い,パイプで ssh に流しています.ssh では,セッションを確立し,圧縮されたファイルを tar で解凍しています.

参考:http://d.hatena.ne.jp/dharry/20090120/1232388175

ディレクトリだけにコマンドを実行する

chmodで,グループにsgidビットを立てるとき,-Rオプションを付けてしまうと,ファイルにまでsgidビットが立ってしまう.そこで,ディレクトリだけにchmod g+sを当てる方法.

$ find <dir> -type d -exec chmod g+s {} \;

<dir>の部分は,コマンドを実行したいディレクトリを指定する.chmod以外のコマンドを実行したい場合は,chmod g+sの部分は任意のコマンドに置き換える.

Linuxのホームディレクトリを英語に直す

最近のLinuxは、ホームディレクトリにディレクトリ名を日本語で作ってくれる。これだとターミナルから入力する時に不便で仕方がない。また、マルチバイト文字なので文字化けの問題も潜在している。で、それを英語に戻す方法を調べてみた。
Linuxのターミナル上で、以下のコマンドを入力し、その後Gnomeを再起動。

LANG=C xdg-user-dirs-gtk-update

参考:http://d.hatena.ne.jp/Artisan/20080522/1211403939

ZenPhotoのインストール

最近デジカメを購入し,写真を公開したいと思いました.FlickrやPicasaでもいいと思ったのですが,自宅サーバを立てていることもあり,自分で導入することに.

写真サイト構築のためのツールは,ZenPhotoやCoppermine Photo Gallery,Gallery,kh_modなど意外とたくさんあります.その中で今回私は,ZenPhoto(http://www.zenphoto.org/)を導入してみました.

理由は,

  • 見た目がすてき
  • ディレクトリ作ってファイルを保存するだけで,公開できる(もちろん,アップロードなどでも公開できます)
  • インストールが容易
  • 日本語にも対応

などです.あとは,以前研究室に導入したときも簡単に使えたからですね.

で,インストール方法です.

私のインストール環境は以下の通りです.

  • CentOS 5.3
  • MySQL 5.0.45
  • php 5.1.6(さらにphp-gd,php-mbstring,php-mysqlを含む)
  • zenphoto 1.2.5

インストール手順

  1. PHPとPHPのGDライブラリとMySQLをインストールする
  2. MySQLにユーザを作って,任意のデータベースを作成する
  3. zenphotoをダウンロードしてきて,公開ディレクトリに設置
  4. ブラウザから,/zenphoto/zp-core/setup.phpにアクセスする
  5. 環境にエラーがないことを確認し,データベースの設定を入力して保存する
  6. 以上でインストール終了

WordPress用のプラグインも出ているようです.Zenpressed(http://n00bism.net/dokuwiki/wordpress/zenpressed/)がいいらしいですが,よくわかりません.また,Wordpressと融合させてしまう事もできるようです(http://www.raspberryleaf.com/blog1/archives/2007/05/wp-and-zenphoto/).興味があればやってみるのもいいかと思います.

ちなみに,私の写真は,http://www.santalinux.net/photo2/に公開しています.良かったら見てみてください.

Unixタイムが1234567890になるらしい

./Jの記事でタイトルのことが紹介されていた.

で実際に以下のスクリプトをたたいてみた.

perl -e 'print scalar localtime(1234567890),"\n";'

その結果は以下の通り.

Sat Feb 14 08:31:30 2009

ということで,2009年2月14日8時31分30秒にUnixタイムが1234567890になるようだ.ふ〜ん.

Scuttleの設定いろいろ

オープンソースのソーシャルブックマークであるScuttleをインストールした後の設定です.以下のサイトを参考に,次の項目を設定しました.

  • 日付の表示を「Y-m-d」に変更
  • 他のユーザが登録できないように変更
  • タグの文字数制限をなくした
  • ブックマークにサムネイルを表示するように変更
  • 一般ユーザ向けページの表示件数を変更

参考:

http://bowz.info/1323

http://sideblue.sakura.ne.jp/sb.cgi?eid=1532 

http://blog.r3c7.net/?tag=scuttle