シェルスクリプトで途中のエラーで処理を止める

シェルスクリプトの先頭で以下の一行を追加する. [bash] set -e [/bash]

sedコマンドで上書きをする

[bash] sed -i -e "s/hoge/fuga/g" file [/bash]

DiaporaをCentOS5.5にインストール

DiaporaをCentOS5.5にインストールしました. 公式のインストールガイドを見てみると,必要な物が書かれています.

まずは必要な物をインストール.yumにある物はyumを使ってインストールします. [bash] sudo yum install libxslt libxslt-devel libxml2 libxml2-devel ImageMagick [/bash]

次にyumリポジトリに存在しない物をインストールします.

MongoDB [bash] cd /usr/local wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.2.tgz tar zxvf mongodb-linux-x86_64-1.6.2.tgz cd mongodb-linux-x86_64-1.6.2 sudo mkdir -p /data/db sudo ./bin/mongod & [/bash]

Git [bash] cd /usr/local/src wget http://kernel.org/pub/software/scm/git/git-1.7.3.3.tar.bz2 tar jxvf git-1.7.3.3.tar.bz2 cd git-1.7.3.3 ./configure make sudo make install [/bash]

Ruby [bash] cd /usr/local/src wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.bz2 tar jxvf ruby-1.8.7-p302.tar.bz2 cd ruby-1.8.7-p302 ./configure --prefix=/usr/local/ruby make sudo make install [/bash]

Rubygems [bash] cd /usr/local/src wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz tar zxvf rubygems-1.3.7.tgz cd rubygems-1.3.7 sudo /usr/local/ruby/bin/ruby setup.rb [/bash]

Bundler [bash] sudo /usr/local/ruby/bin/gem install bundler sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle [/bash]

diaspora [bash] git clone http://github.com/diaspora/diaspora.git cd diaspore PATH=$PATH:/usr/local/ruby/bin:/usr/local/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/bin sudo ./script/build install ./script/server [/bash]

これで,http://localhost:3000 にアクセスすると.Diaporaが表示されます.

GitでHTTPのpushができない

CentOS5.5で自分でビルドしたgit-1.7.3.3でhttpで公開されているリポジトリにpushできない.

[text] $ git push Password: fatal: git-push is not available for http/https repository when not compiled with USE_CURL_MULTI fatal: git-http-push failed [/text]

どうやらcurlのバージョンが古いみたい. http.hでcurlのバージョンをチェックして,USE_CURL_MULTIをdefineしている. [c firstline="18" highlight="20"]

undef USE_CURL_MULTI

if LIBCURL_VERSION_NUM >= 0x071000

define USE_CURL_MULTI

define DEFAULT_MAX_REQUESTS 5

endif

[/c]

なので,最新のcurlをビルドする. [text] $ cd /usr/local/src $ wget http://curl.haxx.se/download/curl-7.21.2.tar.gz $ tar zxvf curl-7.21.2.tar.gz $ cd curl-7.21.2 $ ./configure --prefix=/usr/local/curl $ make

make install

[/text]

そして,gitをビルドし直す. [text] $ cd /usr/local/src/git-1.7.3.3 $ ./configure --with-curl=/usr/local/curl $ make

make install

[/text]

これで,問題なくgit pushすることができました. [text] $ git push Password: Password: Fetching remote heads... refs/ refs/tags/ refs/heads/ updating 'refs/heads/master' from 65b04a46af3402256c2fa4ba3c56de2ad295b6e0 to 8d479858e101f096af489d40f9680bb8e4e6524c sending 4 objects done Updating remote server info To http://taka@localhost/git/my.git 65b04a4..8d47985 master -> master

[/text]

redmineがLDAPにつながらない

redmineLDAP認証の設定を行った時,ログに以下が表示されうまく認証できない.

  TypeError (can't convert Net::LDAP::LdapError into String):
  app/models/auth_source_ldap.rb:43:in `rescue in authenticate'
  app/models/auth_source_ldap.rb:35:in `authenticate'
  app/models/user.rb:109:in `try_to_login'
  app/controllers/account_controller.rb:147:in `password_authentication'
  app/controllers/account_controller.rb:142:in `authenticate_user'
  app/controllers/account_controller.rb:30:in `login'
  :10:in `synchronize'
  passenger (3.0.1) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  passenger (3.0.1) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
  passenger (3.0.1) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  passenger (3.0.1) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
  passenger (3.0.1) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `block in handle_spawn_application'
  passenger (3.0.1) lib/phusion_passenger/utils.rb:479:in `safe_fork'
  passenger (3.0.1) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
  passenger (3.0.1) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.1) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.1) lib/phusion_passenger/abstract_server.rb:180:in `start'
  passenger (3.0.1) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
  passenger (3.0.1) lib/phusion_passenger/spawn_manager.rb:219:in `block (2 levels) in spawn_rails_application'
  passenger (3.0.1) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  passenger (3.0.1) lib/phusion_passenger/spawn_manager.rb:214:in `block in spawn_rails_application'
  passenger (3.0.1) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
  :10:in `synchronize'
  passenger (3.0.1) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (3.0.1) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
  passenger (3.0.1) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
  passenger (3.0.1) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  passenger (3.0.1) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.1) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.1) helper-scripts/passenger-spawn-server:99:in `'

ruby1.9系だと動かないみたいなので,1.8.6 か 1.8.7を使用すると動きました. http://www.redmine.org/issues/4824

ブログ始めました

たぶんこれでブログ始めたの5回目くらいだけど,今回は3日坊主にならないように有益なブログにしていきたいと思います.

Raptor Project

今大学の研究室でやっている研究のプロジェクトサイトです.

Raptor Project

そのうちオープンソースで公開したいと思います.