お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: カテゴリー :

FreeBSD

2008年1月29日

redMine の 初期設定 (1) 「マイアカウント(My account)」

前回ブログのおさらいだが、 インストール後、初めて redMine のページにアクセスできたら、 画面右上の「ログイン」をクリック。 初期状態として ユーザー名 admin、パスワードadminでログインする。 ログインに成功すると、トップ・メニュー右側に 「Logged in as admin」と表示されるようになる。

ログインできたら、次に、トップ・メニュー右上の「My account」をクリック。 開いた「My account」ページの画面左側の 「Language」欄を English から Japanese(日本語) へ 変更してから 「Save」ボタン。すると、画面全体の表示が日本語に変わる。 例えば、先ほどまで 「Logged in as admin」と表示されていたのが 「ログイン中: admin」と表示されるようになる。

もし、Redmineをインターネット上のような パブリックな場所で運用しているのであれば adminパスワードを変更しておいた方がよい。 それには、 コンテンツ・エリアの中(白い部分の中)の右上部に 「パスワード変更」という小さな青いリンクがあるので それをクリック。 「パスワード変更」画面になるので、ここでパスワードを変更できる。 パスワード に関する注意点として 「最低4文字の長さが必要です」と表示されている。

パスワードの変更が済んだら、「マイアカウント」ページに戻ってくるので、 そこで「情報」セクションの メール・アドレス や 「メール通知」セクション の設定、 「設定」セクションのタイムゾーン等を お好みに設定にするとよい。 ちなみに 私のタイム・ゾーンは 「 (UTC-08:00) Pacific Time (US & Canada) 」に、 「メールアドレスを隠す」をチェックしていた。 ただし、この項目をチェックしなければ、 いったいどこでメールアドレスが表示されるのかが ちょっと疑問。

カテゴリー: FreeBSD , Redmine     22:22 | コメント (0) | トラックバック (0)

2008年1月28日

redMine の FreeBSD へのインストール(4)

Redmineインストールの続き。 データベースの作成が済んだので、次は初期値の設定を行う。

アプリケーションのメイン・ディレクトリから
% rake redmine:load_default_data RAILS_ENV="production"
を実行すると、
(in /usr/home/yotumoto/redmine/redmine-0.6.4)

Select language: bg, cs, de, en, es, fr, he, it, ja, ko, nl, pl, pt, pt-br, ro, ru, sr, sv, zh, zh-tw [en] ja
====================================
Loading default configuration data for language: ja
と言語を設定するプロンプトが表示されるので 「ja」と入力しリターン・キー。 すると、デフォルトが日本語になったことが表示される。

次に、redMineの起動 コマンド行から下記のように WEBrick サーバーを起動して
% ruby script/server -e production
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
ブラウザーから「http://localhost:3000/」を開いてみる。 勿論この場合、他のマシンから「http://www.hogehoge.com:3000/」のように指定してもよい。

画面右上の「ログイン」をクリック。 初期状態として ユーザー名 admin、 パスワードadminでログインできる。 ログイン後、画面右上の「My account」より adminユーザーの言語(Language)をJapanese(日本語)に変更後 [save]ボタンをクリックする。 すると、管理画面の内容も日本語になる。

カテゴリー: FreeBSD , Redmine     22:57 | コメント (0) | トラックバック (0)

2008年1月27日

redMine の FreeBSD へのインストール(3)

redMine を FreeBSD へのインストールしているのだが、 前回の挑戦では 「no such file to load -- iconv」 というエラーで止まってしまっていたが、 昨日のブログのとおり、「 iconv module 」 もインストールしたので、改めて もう一度挑戦。

% rake db:migrate RAILS_ENV="production"
今度は正常に動作しているようで
(in /usr/home/redmine/redmine-0.6.4)
== Setup: migrating ===========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0192s
-- create_table("auth_sources", {:force=>true})
   -> 0.0207s
.
.
.
.
-- create_table("workflows", {:force=>true})
   -> 0.0161s
== Setup: migrated (2.4450s) ==================================================

== IssueMove: migrating =======================================================
== IssueMove: migrated (0.0311s) ==============================================
.
.
.
== AddCustomFieldsSearchable: migrating =======================================
-- add_column(:custom_fields, :searchable, :boolean, {:default=>false})
   -> 0.1585s
== AddCustomFieldsSearchable: migrated (0.1600s) ==============================
と、エラーメッセージもなく正常に終了したようだ。

確認のために
% ls -l db
total 118
drwxr-xr-x   2 yotumoto  skymerica   3584 Mar 12 11:23 migrate
-rw-r--r--   1 yotumoto  skymerica  90112 Apr 27 23:11 redmine.db
-rw-r--r--   1 yotumoto  skymerica  21330 Apr 27 23:11 schema.rb
のように データベース・ファイル「redmine.db」と 「schema.rb」が新たに作成されたのがわかる。

さらに確認してみると、
% sqlite3 db/redmine.db
SQLite version 3.5.8
Enter ".help" for instructions
sqlite> .database
seq  name             file
---  ---------------  ----------------------------------------------------------
0    main             /usr/home/redmine/redmine-0.6.4/db/redmine.db
sqlite> .table
attachments             issue_relations         time_entries
auth_sources            issue_statuses          tokens
boards                  issues                  trackers
changes                 journal_details         user_preferences
changesets              journals                users
changesets_issues       members                 versions
comments                messages                watchers
custom_fields           news                    wiki_content_versions
custom_fields_projects  projects                wiki_contents
custom_fields_trackers  projects_trackers       wiki_pages
custom_values           queries                 wiki_redirects
documents               repositories            wikis
enabled_modules         roles                   workflows
enumerations            schema_info
issue_categories        settings
sqlite> .quit
このように、SQLite3 の データベース・ファイルであることが 確認できた。

カテゴリー: FreeBSD , Redmine     22:07 | コメント (0) | トラックバック (0)

2008年1月26日

FreeBSD上のRubyからの「no such file to load -- iconv」というエラーメッセージ

redmineのインストール中、
% rake db:migrate RAILS_ENV="production"
というコマンドを実行すると、
(in /usr/home/redmine/redmine-0.6.4)
rake aborted!
no such file to load -- iconv
/usr/home/redmine/redmine-0.6.4/Rakefile:10
(See full trace by running task with --trace)
というエラーを吐いて止まってしまった。 どうも「iconv」が見つからないっぽいエラーだ。

いろいろとググってみると、 とた日記「野良 port mobileimap-2.1_1」
ruby を FreeBSD の port からインストールした場合は iconv モジュール は別途 converters/ruby-iconv から インストールする必要があります。 lang/ruby18/pkg-message を見れば分かることだったのに。。。
という記述が見つかった。 確認のために /usr/ports/lang/ruby18 の pkg-message を見てみると、
====
Note that some of the standard libraries are provided as separate
ports since they require extra dependencies:

        converters/ruby-iconv   iconv module

        databases/ruby-gdbm:    GDBM module

        x11-toolkits/ruby-tk:   Tcl/Tk modules
        japanese/ruby-tk:       Tcl/Tk modules for Japanized Tcl/Tk

        lang/ruby-mode.el:      Emacs lisp modules

Install them as occasion demands.
====
このように、確かに iconv module は 別にインストールするように記述されている。

そこで早速、converters/ruby-iconv をポートすることにする。
% su
# cd /usr/ports/converters/ruby-iconv
# make install
この時のログが
===>  Vulnerability check disabled, database not found
===>  Extracting for ruby18-iconv-1.8.6.111,1
===>   ruby18-iconv-1.8.6.111,1 depends on file: /usr/local/bin/ruby18 - found
/bin/mkdir -p /usr/ports/converters/ruby-iconv/work
/bin/ln -sf /usr/ports/lang/ruby18/work/iconv /usr/ports/converters/ruby-iconv/work/
===>  Patching for ruby18-iconv-1.8.6.111,1
===>   ruby18-iconv-1.8.6.111,1 depends on file: /usr/local/bin/ruby18 - found
===>   ruby18-iconv-1.8.6.111,1 depends on file: /nonexistent - not found
===>    Verifying patch for /nonexistent in /usr/ports/lang/ruby18
===>   Returning to build of ruby18-iconv-1.8.6.111,1
===>   ruby18-iconv-1.8.6.111,1 depends on file: /usr/local/bin/ruby18 - found
===>   ruby18-iconv-1.8.6.111,1 depends on shared library: iconv.3 - found
===>  Configuring for ruby18-iconv-1.8.6.111,1
===>  Running extconf.rb to configure
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... yes
checking for const of iconv() 2nd argument... yes
creating Makefile
===>  Building for ruby18-iconv-1.8.6.111,1
cc -I. -I. -I/usr/local/lib/ruby/1.8/i386-freebsd6 -I. -DICONV_INPTR_CONST -I/usr/local/include -fPIC -O2 -fno-strict-aliasing -pipe    -fPIC -c iconv.c
cc -shared -o iconv.so iconv.o -L'.' -L'/usr/local/lib' -Wl,-R'/usr/local/lib' -L'/usr/local/lib' -Wl,-R'/usr/local/lib' -L.  -rdynamic  -Wl,-soname,iconv.so  -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby18 -liconv  -lcrypt -lm  -rpath=/usr/lib:/usr/local/lib -pthread  -lc
===>  Installing for ruby18-iconv-1.8.6.111,1
===>   ruby18-iconv-1.8.6.111,1 depends on file: /usr/local/bin/ruby18 - found
===>   Generating temporary packing list
===>  Checking if converters/ruby-iconv already installed
/usr/bin/install -c -o root -g wheel -m 0755 iconv.so /usr/local/lib/ruby/1.8/i386-freebsd6
===>   Registering installation for ruby18-iconv-1.8.6.111,1
これによると、/usr/local/lib/ruby/1.8/i386-freebsd6 ディレクトリに iconv.so がインストールされているようだ。

【参考リンク】

カテゴリー: FreeBSD , Redmine , Ruby     22:45 | コメント (0) | トラックバック (0)

2008年1月25日

redMine の FreeBSD へのインストール(2)

昨日のブログからの続きで、redMine を FreeBSD へのインストールしてみる。

RubyForge 「Redmine」ファイルリスト から redmine-0.6.4.tar.gz をダウンロード。
% mkdir redmine
% cd redmine
% wget http://rubyforge.org/frs/download.php/33789/redmine-0.6.4.tar.gz
% tar xzf redmine-0.6.4.tar.gz
% cd redmine-0.6.4


データベースの設定ファイルを準備する。 サンプルの「database.yml.example」 をコピーして「database.yml」を作成する。
% cd config
% cp database.yml.example database.yml
変更前の「database.yml」ファイルは
# MySQL (default setup).  Versions 4.1 and 5.0 are recommended.
#
# Get the fast C bindings:
#   gem install mysql
#   (on OS X: gem install mysql -- --include=/usr/local/lib)
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: root
  password:
 
development:
  adapter: mysql
  database: redmine_development
  host: localhost
  username: root
  password:

test:
  adapter: mysql
  database: redmine_test
  host: localhost
  username: root
  password:
.
.
.
demo:
  adapter: sqlite3
  dbfile: db/redmine_demo.db
となっている。 このファイルの「production:」の部分を 「Redmineのインストール」 を参考に SQLite3 用に 変更する。 すると
production:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000
となる。

「データベースの初期化」を行うために、 アプリケーションのメイン・ディレクトリから
% cd ..
% rake db:migrate RAILS_ENV="production"
というコマンドを実行。
(in /usr/home/redmine/redmine-0.6.4)
rake aborted!
no such file to load -- iconv
/usr/home/redmine/redmine-0.6.4/Rakefile:10
(See full trace by running task with --trace)
よくみてみると 「no such file to load -- iconv」 というエラー・メッセージを吐いて止まってしまう。 さて、どうしようかな?

【参考リンク】

カテゴリー: FreeBSD , Redmine     22:51 | コメント (0) | トラックバック (0)

2008年1月24日

redMine の FreeBSD へのインストール(1)

redMine を FreeBSD へのインストールしてみようと思う。 参考となる情報としては、本家 redmine.org のヘルプに 「Installation guide」がある。 一方、redMine日本語サイトの「Redmine.jp」 の 「Redmineのインストール」 にも情報がある。 また、日本語の説明としては、技術評論社の gihyo.jp にある。 「Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!」 の 「第2回 環境構築/redMineのインストール・初期設定」 がある。

まず、Redmine の Helpページ 「Installing Redmine」 を見てみる。 ここで必要なものとして、
  • Ruby on Rails 1.2.6 or 2.0.2
  • A database (see compatibility below)
が挙げられている。 利用可能なデータベースとしては、
  • MySQL
  • PostgreSQL
  • SQLite
とあり、この中でも「MySQL」が推奨されている。 注意点として、「SQLite」については、
(please read this: http://weblog.rubyonrails.org/2007/1/29/using-sqlite3-with-rails)
という記述がある。 なにやら、SQLiteのバージョンによって Ruby on Rails の動作に支障をきたすようだ。 詳細については、別ブログで調査してみよう。

それから redMine日本語サイト「Redmine.jp」 の 「Redmineのインストール」 ページを見てみると、こちらは SQLite3 を利用した方法になっている。 このページの記述によると、まず事前にインストールが必要なモノが
  • Ruby
  • SQLite3
  • RubyGems
  • Ruby on Rails (# gem install rails)
  • sqlite3-ruby (# gem insall sqlite3-ruby)
とある。 今回は、私もお手軽な SQLite3 を利用してみようと思っていたので そちらの説明に従ってみることにする。

【参考リンク】

カテゴリー: FreeBSD , Redmine     22:57 | コメント (0) | トラックバック (0)

2008年1月19日

FreeBSD 6.3 リリース

2008年1月18日に FreeBSD 6.3 がリリースされた。 6.2がリリースされたのが 2007年1月15日だったから、 ちょうど1年ぶりのリリースになった。

FreeBSD 6.3-RELEASE Announcement」 によると、 主な変更点は、
  • KDE updated to 3.5.8, GNOME updated to 2.20.1, Xorg updated to 7.3
  • BIND updated to 9.3.4
  • sendmail updated to 8.14.2
  • lagg(4) driver ported from OpenBSD/NetBSD
  • unionfs file system re-implemented
  • freebsd-update(8) now supports an upgrade command
となっている。

Xorg、KDE、GNOME と言えば X Window System による グラフィック・ユーザー・インターフェース(GUI)関連。 BIND、sendmail といえば、インターネットのサーバー系。 「 lagg driver 」とは、 「 link aggregation and link failover interface 」で 複数のネットワークインターフェースを束ねて フェイルオーバーやロードバランシングなどを行う仮想インターフェースのこと。

そして、「 unionfs 」とは、 「FreeBSD unionfsの改善提案および修正状況」 によると
unionfsは、2つのファイルシステムをアタッチして ひとつのファイルシステムとして扱うためのファイルシステムのことである。 たとえばCD-ROMに対してメモリファイルシステムをアタッチして、 CD-ROM上のファイルに対して書き込みができるかのように見せかける と いった用途に用いられる。
とある。

また、このアナウンスメントの Dedication の欄には、 昨年10月29日に亡くなられた 通称「 itojun 」こと 萩野 純一郎 氏の IPv6に関する功績が称えられている。 ちなみに、私も一度、サンノゼ(San Jose)の iijの事務所で お目にかかったことがあり、 Mixiでもマイミクに登録させてもらっていた。 改めて、itojunさんのご冥福をお祈りする。

【参考リンク】

カテゴリー: FreeBSD     22:56 | コメント (0) | トラックバック (0)

2007年11月25日

FreeBSDへの SSH での 「パスワード認証」ログイン

最近、特にインターネット上にUNIX系のサーバーに対する ログインは、セキュリティーの関係から Telnetではなく、ssh が利用されるようになっている。 今回は、最もセキュリティー的には低いが、 ssh を始めるにあたって最も簡単な認証タイプである 「パスワード認証」と 「root ログイン許可」を設定してみる。

まず、いつものお断りですが、 以下にあげた方法は、セキュリティーレベルを低くする方法なので、 その点を十分に注意してください。 私の場合、新規サーバーをインストールした直後等に この設定を行い、とりあえずリモートから root でログインできる体制にして、 各種の設定が終わった後に、元に戻すようにしています。

ssh での認証タイプには、
  • ホストベースド認証 (host-based authentication)
  • 公開鍵認証 (public key authentication)
  • チャレンジレスポンス認証 (challenge-response authen tication)
  • パスワード認証 (password authentication)
の4つがある。 これらのうち、TeraTerm からの接続で「プレインテキストを使う」で接続したい場合には、 「 パスワード認証 (password authentication) 」を有効にする必要がある。

ssh からの接続を受け取るデーモンは「 sshd 」であり、 この「 sshd 」の設定ファイルは、「 /etc/ssh/sshd_config 」である。 パスワード認証 (password authentication) についての設定も、 この /etc/ssh/sshd_config ファイル内の 「 PasswordAuthentication 」設定でおこなうことになっており、 デフォルトでは「 PasswordAuthentication no 」 となっているので、
PasswordAuthentication yes
と 書き換える必要がある。

また、ssh から root で ログインする必要がある場合は、 「 PermitRootLogin 」設定を行う必要がある。 これもデフォルトでは 「 PermitRootLogin no 」となっているので、
PermitRootLogin yes
と 書き換える必要がある。

/etc/ssh/sshd_config を変更した後には sshd を再起動して、新しい sshd_config を読み込ませてやる必要がある。 これに関して、FreeBSDマニュアル 「FreeBSD Manual「sshd -- OpenSSH SSH デーモン」」 には
sshd はハングアップシグナル SIGHUP を受け取ると、 自分の設定ファイルを読み込みなおします。 これは自分自身を開始したときのパス名 /usr/sbin/sshd を exec することによっておこないます。
とある。 よって、/etc/ssh/sshd_config を変更した後には、
# ps ax | grep sshd
  651  ??  Is     0:00.00 /usr/sbin/sshd
# kill -HUP 651
のように、sshd のプロセス番号を「 ps ax 」コマンドで調べて そこで判明したプロセス番号に対して、 「 kill -HUP プロセス番号 」とするとよい。

【参考リンク】

カテゴリー: FreeBSD , SSL/SSH     22:38 | コメント (1) | トラックバック (0)

2007年9月13日

FreeBSDでシステムコール呼び出しをトレースする「truss」コマンド

最近のFreeBSDには、「truss」コマンド、というコマンドが付いてきている。 これで、プログラム中のシステムコール呼び出し部分をトレースすることができる。

まず FreeBSDでは procfs(5) が mountされていることが必要なので、 /etc/fstab に以下を加えて mount する。
proc    /proc   procfs  rw      0       0
マウントの方法は、
# mount -a
で、もう一度、引数なして mount コマンドを実行するか、もしくは dfコマンドで 確認できる。
# mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
procfs on /proc (procfs, local)
# df
Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a  18276366 2760552 14053706    16%    /
devfs               1       1        0   100%    /dev
procfs              4       4        0   100%    /proc


trussコマンドの例して、"hello" を echo する際に使われるシステムコールを追います
# truss /bin/echo hello
mmap(0x0,3952,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 671555584 (0x28072000)
munmap(0x28072000,3952)                          = 0 (0x0)
__sysctl(0xbfbfeab8,0x2,0x2806e618,0xbfbfeab4,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671555584 (0x28072000)
issetugid()                                      = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666)           ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,00)     = 3 (0x3)
read(3,"Ehnt\^A\0\0\0\M^@\0\0\0V\0\0\0\0"...,128) = 128 (0x80)
lseek(3,0x80,SEEK_SET)                           = 128 (0x80)
read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,86) = 86 (0x56)
close(3)                                         = 0 (0x0)
access("/lib/libc.so.6",0)                       = 0 (0x0)
open("/lib/libc.so.6",O_RDONLY,00)               = 3 (0x3)
fstat(3,{mode=-r--r--r-- ,inode=376834,size=929420,blksize=4096}) = 0 (0x0)
read(3,"\^?ELF\^A\^A\^A\t\0\0\0\0\0\0\0"...,4096) = 4096 (0x1000)
mmap(0x0,946176,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_NOCORE,3,0x0) = 671588352 (0x2807a000)
mprotect(0x28144000,4096,PROT_READ|PROT_WRITE|PROT_EXEC) = 0 (0x0)
mprotect(0x28144000,4096,PROT_READ|PROT_EXEC)    = 0 (0x0)
mmap(0x28145000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,3,0xca000) = 672419840 (0x28145000)
mmap(0x2814b000,90112,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 672444416 (0x2814b000)
close(3)                                         = 0 (0x0)
sysarch(0xa,0xbfbfeb30)                          = 0 (0x0)
mmap(0x0,168,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672534528 (0x28161000)
munmap(0x28161000,168)                           = 0 (0x0)
mmap(0x0,22784,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672534528 (0x28161000)
munmap(0x28161000,22784)                         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
readlink("/etc/malloc.conf",0xbfbfec20,63)       ERR#2 'No such file or directory'
issetugid()                                      = 0 (0x0)
mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 672534528 (0x28161000)
break(0x804b000)                                 = 0 (0x0)
break(0x804c000)                                 = 0 (0x0)
hello
writev(0x1,0x804b030,0x2)                        = 6 (0x6)
exit(0x0)
process exit, rval = 0
と、このように、簡単な echo コマンドでさえも、このように長い出力になる。

【参考リンク】

カテゴリー: FreeBSD     22:46 | コメント (0) | トラックバック (0)

2007年9月12日

プログラムがロードする共有ライブラリを表示する「 ldd 」コマンド

FreeBSDをはじめとする UNIX系の ほとんどのプログラムは、 共有ライブラリ(共有オブジェクト)を動的にリンクして動作する。 場合によっては、あるプログラムが、 どのような共有ライブラリをロードするのかを知りたい場合がある。 そのような時に、一覧で表示してくれるのが、この「 ldd 」コマンドである。

詳細は、マニュアルの 「ldd -- 依存する共有オブジェクトの一覧」 などに書いてあるので、 ここでは具体例をみてみることにする。 まずは ls コマンド。
%  which ls
/bin/ls
% ldd /bin/ls
/bin/ls:
        libutil.so.5 => /lib/libutil.so.5 (0x2807f000)
        libncurses.so.6 => /lib/libncurses.so.6 (0x2808b000)
        libc.so.6 => /lib/libc.so.6 (0x280cc000)
このように、/bin/ls コマンドは、 「libutil.so.5」、「libncurses.so.6」、「libc.so.6」の 3つの共有ライブラリをロードし、 それぞれは、/lib ディレクトリに存在していることがわかる。

また、ldd には 「 -a 」オプションというのがあり、このオプションをつけると 各ロードオブジェクトが必要とするすべてのオブジェクトの一覧を表示してくれる。 例えば、
% ldd -a /usr/local/bin/ruby
/usr/local/bin/ruby:
        libruby18.so.18 => /usr/local/lib/libruby18.so.18 (0x2807a000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x28138000)
        libm.so.4 => /lib/libm.so.4 (0x28150000)
        libpthread.so.2 => /lib/libpthread.so.2 (0x28166000)
        libc.so.6 => /lib/libc.so.6 (0x2818b000)
/usr/local/lib/libruby18.so.18:
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x28138000)
        libm.so.4 => /lib/libm.so.4 (0x28150000)
のように、「 libruby18.so.18 」から、 「 libcrypt.so.3 」と「 libm.so.4 」が呼ばれているのがわかる。

それから、lddコマンドは、実行ファイルだけでなく共有オブジェクトにも対応しているので、 上記の例では、共有ライブラリである「 /usr/local/lib/libruby18.so.18 」についてみてみると、
% ldd /usr/local/lib/libruby18.so.18
/usr/local/lib/libruby18.so.18:
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x28223000)
        libm.so.4 => /lib/libm.so.4 (0x2823b000)
のように表示される。

【参考リンク】

カテゴリー: FreeBSD     22:46 | コメント (0) | トラックバック (0)

2007年9月11日

FreeBSDにおけるタイムゾーンの手動設定方法

FreeBSDのハンドブック等には、 FreeBSDにおける タイムゾーンの設定には、 sysinstall を起動して行うように記述されている。 しかし、sysinstall を起動することなく手動で、 もしくは シェル・スクリプトか何かから自動的に 設定したい場合もある。 今回のブログでは、その方法について調査してみた。

この方法に関する説明は、 「 FreeBSD: Set date time and timezone 」 ページの「 FreeBSD Setup Timezone 」に見つけることができた。 ここの説明によると、「 /usr/share/zoneinfo 」ディレクトリ以下に 地域ごとに分類されている timezoneファイルがあり、 その中から、該当する地域のファイルを 「 /etc/localtime 」へコピーすることにより、 FreeBSDシステムにおけるタイムゾーンを設定できる、とある。

具体的に例を挙げながら 見てみることにする。 ここではシリコンバレー(Silicon Valley)のタイムゾーンを設定してみる。 まず、
# cd /usr/share/zoneinfo
# ls
Africa          Asia            CST6CDT         Etc             HST             MST7MDT         WET
America         Atlantic        EET             Europe          Indian          PST8PDT         posixrules
Antarctica      Australia       EST             Factory         MET             Pacific         zone.tab
Arctic          CET             EST5EDT         GMT             MST             SystemV
のように、ディレクトリ「 /usr/share/zoneinfo 」下には 地域や代表的なタイム・ゾーンのファイルが置いてある。 また、このディレクトリには、「 zone.tab 」というファイルがあるので、 このテキスト・ファイルの内容をみてみると、 細かな地域が一覧できる。

今回の例では、シリコンバレー(Silicon Valley)のタイムゾーンを設定するので 「 America 」ディレクトリへ降りてゆく。
# cd America
# ls
Adak            Bogota          Dawson_Creek    Guayaquil       Managua         New_York        Recife          Swift_Current
Anchorage       Boise           Denver          Guyana          Manaus          Nipigon         Regina          Tegucigalpa
Anguilla        Cambridge_Bay   Detroit         Halifax         Marigot         Nome            Resolute        Thule
Antigua         Campo_Grande    Dominica        Havana          Martinique      Noronha         Rio_Branco      Thunder_Bay
Araguaina       Cancun          Edmonton        Hermosillo      Mazatlan        North_Dakota    Santiago        Tijuana
Argentina       Caracas         Eirunepe        Indiana         Menominee       Panama          Santo_Domingo   Toronto
Aruba           Cayenne         El_Salvador     Inuvik          Merida          Pangnirtung     Sao_Paulo       Tortola
Asuncion        Cayman          Fortaleza       Iqaluit         Mexico_City     Paramaribo      Scoresbysund    Vancouver
Atikokan        Chicago         Glace_Bay       Jamaica         Miquelon        Phoenix         Shiprock        Whitehorse
Bahia           Chihuahua       Godthab         Juneau          Moncton         Port-au-Prince  St_Barthelemy   Winnipeg
Barbados        Costa_Rica      Goose_Bay       Kentucky        Monterrey       Port_of_Spain   St_Johns        Yakutat
Belem           Cuiaba          Grand_Turk      La_Paz          Montevideo      Porto_Velho     St_Kitts        Yellowknife
Belize          Curacao         Grenada         Lima            Montreal        Puerto_Rico     St_Lucia
Blanc-Sablon    Danmarkshavn    Guadeloupe      Los_Angeles     Montserrat      Rainy_River     St_Thomas
Boa_Vista       Dawson          Guatemala       Maceio          Nassau          Rankin_Inlet    St_Vincent
のように、アメリカの都市名がついたファイルが たくさん置いてある。 残念ながら、この中に、シリコンバレー(Silicon Valley) とか サンノゼ(San Jose) とか サンフランシスコ(San Francisco) と いった都市名がないので、シリコンバレーと同じタイムゾーンの ロス・アンゼルスのファイル「 Los_Angeles 」を採用することにする。

ファイルがみつかったら、あとは、このファイルを 「 /etc/localtime 」へコピーするだけだ。
# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
新しいタイム・ゾーンが有効になるためには システムの再起動等は不要である。 確認のために
# date
Wed Sep 10 17:55:11 PDT 2008
のように「 Pacific Daylight Time」を表す「 PDT 」と表示されている。

同様に、もしタイムゾーンを日本標準時にする場合には、
# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
とすればよいことになる。

ちなみに、「 /usr/share/zoneinfo 」ディレクトリにあった「 PST8PDT 」ファイルをコピーしても シリコンバレーのタイム・ゾーンである太平洋標準時になるようである。

【参考リンク】

カテゴリー: FreeBSD     22:08 | コメント (0) | トラックバック (0)

2007年9月10日

FreeBSDの tarコマンドによる 「tar.gz」ファイルの 作り方 と 解凍方法

FreeBSDをはじめとするUNIX系のシステムで ソースファイル等が配布される場合は必ず、 「 XXXX.tar.gz 」というファイルの拡張子になっている。 この 「 .tar.gz 」形式のファイルの 作成方法 と その展開方法について まとめておく。

これらのファイル操作は、最近の FreeBSD であれば、 「 tar 」 コマンドで行うことができる。 tarコマンドにも 例のごとくたくさんのオプションが存在するが、 これらのオプションには 大きく2通りがあり、 「モードオプション」と「その他のオプション」である。

まず 主な「モードオプション」は3つで、
  • c 新たにアーカイブを作成する
  • t 標準出力にアーカイブ内容のリストを出力する
  • x アーカイブからディスクに展開する
と言ったところ。 ちなみに上記のように、いくつかのファイルを1つにまとめること、もしくは まとめたもを表すのに「アーカイブする」とか「アーカイブ」という言葉を使う。 また、そのような操作をするソフトウェアのことを「アーカイバー」ということもある。

それから tarコマンドのたくさんある その他のオプションの中で 重要なの(私が使うことがあるの)は、
  • f 指定されたファイルに対してアーカイブを読んだり書いたりする
  • v 詳しい出力を表示する
  • z 作成するアーカイブを gzip で圧縮する
と言ったところ。

では実際の例として、「test」というディレクトリの下 全体を 「 test.tar.gz 」というファイルにまとめる場合は、
% tar czf test.tar.gz test
とする。 この際の拡張子は、「 .tar.gz 」である必要はなく、 何でもよいし、もしくは極端に言うと 何もつけなくてもよいのだが、 通常慣例として、 tar でアーカイブして、かつ gzip 圧縮したファイルには 「 .tar.gz 」と付けることになっている。 こうしておいた方が 自分が間違えなくてすむ。

既にアーカイブされているアーカイブ・ファイル「 test.tar.gz 」の内容を確認するには
% tar tvf test.tar.gz


アーカイブ・ファイル「 test.tar.gz 」を展開するには、
% tar xf test.tar.gz
とすればよい。

ここでの注意点として、 アーカイブ・ファイルを作成( c オプション )する際に gzip 圧縮するには、 必ず「 z 」オプションをつけなければならいが、 少なくともFreeBSDに関しては、 自動的に gzip 圧縮されていることを認識するので、 内容を確認( t オプション )したり、 展開( x オプション )したりする場合には、 「 z 」オプションを つける必要がない。

【参考リンク】

カテゴリー: FreeBSD     22:48 | コメント (0) | トラックバック (0)

2007年6月 9日

Apache 2.2.x : [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter

FreeBSD上で Apache 2.2.x を起動させると
[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
のようにWarningが出る場合がある. このWarningの意味は何なのか? どのように対応したらよいのか?

いろいろググってたら、原因は accf_http.koというカーネルモジュールがないためのようだ。 よってその解決策としては、
# kldload accf_http.ko
を行って、accf_http.ko カーネル・モジュールをロードしてから アパッチを再起動するとよいらしい。実際に試してみると確かに上記のエラーが出なくなった。 ちなみに 「kldload」 とは カーネルリンカを用いて XXXX.ko をカーネルにロードするコマンド。

また、現在のカーネルモジュールを確認するには、動的カーネルリンカの状態を表示するコマンド 「kldstat」 を用いて
# kldstat
Id Refs Address    Size     Name
 1    8 0xc0400000 7a05b0   kernel
 2    1 0xc0ba1000 5c304    acpi.ko
 3    1 0xc2447000 19000    linux.ko
 4    1 0xc2843000 2000     accf_http.ko
のようにするとよい。

ただし、このままでは アパッチを起動する際に、毎回 kldload コマンドを手入力しなければならなくなる。 この事態を避けるためには FreeBSDの起動時に自動的に accf_http.ko を読み込ませればよいことになる。 そのためには、 /boot/loader.conf
accf_http_load="YES"
の一行を加えておけばよい。 これも実際に試してみて、確かに FreeBSDの起動時から Apache 2.2.x がエラーなく起動するようになった。

これで、とりあえず、エラーは出なくはなったが、 何故、このエラーが表示されていたのか? このエラーに対してアパッチ側での何の対応もできないのか? という疑問が残る。 もう少し、調査してみることにする。

【参考リンク】

カテゴリー: Apache , FreeBSD     22:31 | コメント (0) | トラックバック (0)

2007年6月 8日

FreeBSD で emacs を X11 無しでインストールする方法

FreeBSD において、 例えば emacs をports からインストールしようとすると デフォルトでは X11 関連のライブラリも同時にインストールされてしまう。 しかし、バーチャル・プライベート・サーバ等を間借りしているような場合は telnet(SSH)でログインして、キャラクターベースでしか emacs を使わない訳だから、 X11関連のライブラリは不要である。 そんな不要な X11関連の巨大なファイル群で 貴重なディスク・スペースが占領されてしまうのは非常にもったいない話だ。

そこで、emacsを X11無しでコンパイルする方法があるのかを調査してみた。 まず、/usr/ports/editors/emacs にある、Makefile を解析してみる。
# New ports collection makefile for:    GNU emacs
# Date created:         11 October 2001
# Whom:                 MANTANI Nobutaka <nobutaka@nobutaka.com>
#
# $FreeBSD: ports/editors/emacs/Makefile,v 1.73 2007/10/08 23:29:46 keramida Exp $
#

PORTNAME=       emacs
PORTVERSION=    ${EMACS_VER}
PORTREVISION=   2
CATEGORIES=     editors ipv6
MASTER_SITES=   ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR=     ${PORTNAME}

MAINTAINER=     keramida@ceid.upatras.gr
COMMENT=        GNU editing macros

.if !defined(WITHOUT_X11)
.if defined(WITHOUT_GTK)
LIB_DEPENDS=    Xaw3d.${XAWVER}:${PORTSDIR}/x11-toolkits/Xaw3d
.endif
LIB_DEPENDS+=   jpeg.9:${PORTSDIR}/graphics/jpeg \
                tiff.4:${PORTSDIR}/graphics/tiff \
                ungif.5:${PORTSDIR}/graphics/libungif \
                png.5:${PORTSDIR}/graphics/png
.endif

CONFLICTS=      emacs-19.* emacs-21.* \
                xemacs-[0-9]* xemacs-devel-[0-9]* \
                xemacs-mule-[0-9]* xemacs-devel-mule-[0-9]*

EMACS_VER=      22.1
GNU_CONFIGURE=  yes
USE_GMAKE=      yes

.if !defined(WITHOUT_X11)
.if !defined(WITHOUT_GTK)
USE_GNOME=      gtk20
.else
USE_XLIB=       yes
.endif
USE_XPM=        yes
.endif

CONFIGURE_TARGET=       ${MACHINE_ARCH}-freebsd
.if defined(WITHOUT_X11)
CONFIGURE_ARGS=         --with-x=no
.else
.if !defined(WITHOUT_GTK)
CONFIGURE_ARGS=         --with-gtk
.endif
.endif

.if defined(WITHOUT_XIM)
CONFIGURE_ARGS+=        --without-xim
.endif

MAN1=           ctags.1 emacs.1 emacsclient.1 etags.1
PLIST_SUB=      EMACS_VER=${EMACS_VER} EMACS_ARCH=${CONFIGURE_TARGET}

MAKE_ENV=       LC_ALL=C

INFO=           ada-mode autotype calc ccmode cl dired-x ebrowse ediff \
                efaq eintr elisp emacs-mime emacs erc eshell eudc \
                flymake forms gnus idlwave info message mh-e newsticker \
                org pcl-cvs pgg rcirc reftex sc ses sieve smtpmail speedbar \
                tramp url vip viper widget woman

LATEST_LINK=    emacs

.include <bsd.port.pre.mk>

.if ${ARCH} == "ia64"
BROKEN= Emacs 22.X does not currently build on ia64
.endif

pre-everything::
.if !defined(WITHOUT_X11) && !defined(WITHOUT_GTK)
        @${ECHO_MSG} "====>"
        @${ECHO_MSG} "====> To disable GTK+ interface support, define WITHOUT_X11 or WITHOUT_GTK"
        @${ECHO_MSG} "====>"
.endif
.if !defined(WITHOUT_X11) && !defined(WITHOUT_XIM)
        @${ECHO_MSG} "====>"
        @${ECHO_MSG} "====> To disable X11 Input Method support, define WITHOUT_XIM"
        @${ECHO_MSG} "====>"
.endif

post-patch:
        @${RM} -f ${WRKSRC}/info/*

.include <bsd.port.post.mk>
この中で、ports間の依存関係を記述しているのが 20行目の
LIB_DEPENDS=    Xaw3d.${XAWVER}:${PORTSDIR}/x11-toolkits/Xaw3d
という記述だ。 ここで、 Xaw3d など、X11関連が指定されている。 よくみると、その2行上に
.if !defined(WITHOUT_X11)
という記述がある。 これは、「もし、WITHOUT_X11が定義されていなければ」と読める。 つまり、「 LIB_DEPENDS= 」は 「 WITHOUT_X11 」が定義されていない場合に限り 評価される、と言うことだ。 逆に言うと、「もしWITHOUT_X11が定義されていれば、LIB_DEPENDS=... は無視する 」 ということになる。

その後、ググッたりして確認してみると、 先日のブログ「FreeBSD の /etc/make.conf」で ふれた /etc/make.conf に
WITHOUT_X11=yes
の1行を記述しておくと、 emacs の ports を make する際に、何も指定しなくても、 X11関連を省いた形でビルドしてくれることが判明した。

これについては、 「portsでX非依存で入れたい」 にも記述がある。 また、「WITHOUT_X11=yes」だけでなく、「WITHOUT_GUI=yes」や 「NO_X=true」などもあるようだ。 どこかに、これらの変数についてまとめてあるとうれしいのだが。

【参考リンク】

カテゴリー: FreeBSD     22:03 | コメント (0) | トラックバック (0)

2007年6月 6日

FreeBSD の /etc/make.conf

FreeBSDでは、アプリケーションを ports で コンパイル(Make)する際の動作をコントロールするためや、 カーネルやシステム全体をコンパイルし直す際に 「/etc/make.conf」というファイルを作成して、 いろいろ設定する必要がある場合がある。

「make.conf」についてはマニュアル があり、その一節には、
make.conf の主要な目的は、通常、/usr/src, /usr/doc と /usr/ports にある FreeBSD ソース、文書 (ドキュメント)、と移植されたアプリケーションの コンパイルを制御することです。 一般に、特定の制御変数の値をデフォルトから変更する必要があるとき、 システム管理者は make.conf を作成します。
とある。 マニュアルには、沢山の変数についての説明がある。

この 「make.conf」のデフォルト値は、 /usr/share/example/etc/make.conf もしくは /usr/share/examples/etc/defaults/make.conf にあるようだ。 このサンプルmake.confファイルに 多くの変数がコメントとして記述されている。 実際にこのmake.confを利用する際には、
# cp /usr/share/example/etc/make.conf /etc/make.conf
のようにサンプル・ファイルをコピーしてから、 必要に応じて、/etc/make.conf にある 沢山の変数の中からコメントを外すなり、設定値を変えるとよいようだ。

いろいろ make.conf について調査していると、 マニュアルには記述されていない変数も 沢山 存在しているようだ。 例えば、Perlに関しては
PERL_VER=5.8.8
PERL_VERSION=5.8.8
のような設定が存在しているようだ。

【参考リンク】

カテゴリー: FreeBSD     22:44 | コメント (0) | トラックバック (0)

2007年6月 5日

FreeBSD で CPU や 周辺デバイスを調査する方法

FreeBSD が走っている環境で CPU や 周辺デバイスを調査するには、 「 /var/run/dmesg.boot 」というテキストファイルを見てみると良い。 このファイルはマニュアル 「dmesg」 によると、 「通常は、起動時にファイルシステムがマウントされたすぐ後の、 バッファ内容のスナップショット」 であると記述されている。

具体例を見てみようと思う。 チョット古めPCサーバーを例としてみる。 実際のファイルは長いので、まずは始めの部分だけをみてみると、
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 4.10-STABLE #0: Fri Dec  3 17:06:15 EST 2004
    admin@bsdhost.jvds.com:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254"  frequency 1193182 Hz
CPU: Intel(R) Pentium(R) 4 CPU 3.20GHz (3194.10-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf43  Stepping = 3
  Features=0xbfebfbff
  Hyperthreading: 2 logical CPUs
real memory  = 2138767360 (2088640K bytes)
avail memory = 2077728768 (2029032K bytes)
Preloaded elf kernel "kernel" at 0xc0554000.
Warning: Pentium 4 CPU: PSE disabled
Pentium Pro MTRR support enabled
となっている。

この4行目の
FreeBSD 4.10-STABLE #0: Fri Dec  3 17:06:15 EST 2004」
で このシステムのバージョンが 4.10 の STABLE であることがわかる。

さらに、7行目の
CPU: Intel(R) Pentium(R) 4 CPU 3.20GHz (3194.10-MHz 686-class CPU)
で CPUの メーカー、 種類、クロックまでわかる。

また、11行目の
real memory  = 2138767360 (2088640K bytes)
avail memory = 2077728768 (2029032K bytes)
という行で、メモリが 2Gバイト 搭載していることがわかる。

この後、各種デバイスについての記述となる。 例えば、
rl0: <RealTek 8139 10/100BaseTX> port 0xe400-0xe4ff mem 0xfbfff800-0xfbfff8ff irq 11 at device 13.0 on pci1
rl0: Ethernet address: 00:17:31:0d:0a:ba
で、 Eternet が 「RealTek」の 8139 で 10/100 対応であることと、 その Macアドレス が判明する。

それから、このサーバーのストレージ・システムを例にとると、
twe0: <3ware Storage Controller driver ver. 1.40.01.002> port 0xe800-0xe80f mem 0xfb000000-0xfb7fffff,0xfbfffc00-0xfbfffc0f irq 11 at device 10.0 on pci1
twe0: 2 ports, Firmware FE8S 1.05.00.068, BIOS BE7X 1.08.00.048
で、3ware の Storage Controller を利用しているのがわかるし、
twed0: <Unit 0, TwinStor, Normal> on twe0
twed0: 114472MB (234439600 sectors)
Mounting root from ufs:/dev/twed0s1a
で、全体の容量が114Gバイトあり、 ルート・ディレクトリ が /dev/twed0s1a にマウントされていることもわかる。

【参考リンク】

カテゴリー: FreeBSD     22:52 | コメント (0) | トラックバック (0)

2007年6月 2日

Apache HTTP Server の FreeBSD における自動起動

FreeBSDでは システムのブート時に ディレクトリ「 /usr/local/etc/rc.d 」 に置いてある 実行可能スクリプトを自動的に実行する仕組となっている。 この仕組をつかって Apache HTTP Server を自動的に起動させる 設定をしてみる。

以下のスクリプトが 私が今までに使ってきているモノ。 具体的には、ルート権限になって、 ディレクトリ /usr/local/etc/rc.d に 以下のスクリプトを「apache2.sh」という名前で 保存する。
#! /bin/sh
#
# apache start script
#
#
case "$1" in
start)
        if [ -x /usr/local/apache2/bin/apachectl ];then
            /usr/local/apache2/bin/apachectl start
        fi
        ;;
stop)
        /usr/local/apache2/bin/apachectl stop
        ;;
*)
        echo "Usage: `basename $0` {start|stop}" >&2
        exit 64
        ;;
esac

exit 0
それから、実行可能とするために
# chmod 755 /usr/local/etc/rc.d/apache2.sh
としておく。 あとは、システムを再起動してみて 実際に 自動的に起動するかどうかを確認する。

【参考リンク】

カテゴリー: Apache , FreeBSD     22:38 | コメント (0) | トラックバック (0)

2007年5月27日

md5 と ソフトウェアのダウンロード

ソフトウェアをダウンロードする際に、 「 .md5 」 という拡張子が付いたファイルが 同一ディレクトリに置いてあったりすることがある。 これはファイルをダウンロードする際に そのファイルが破損していないことを 確認する為に用いられるものである。

通常この「 .md5 」 という拡張子が付いたファイル(値)は ダウンロード用のファイルから算出された MD5ハッシュ値(いわゆるMD5チェックサム)である。 ファイル配布元が提示しているMD5ハッシュ値と ダウンロード後に こちらで算出した値が同じであれば ダウンロードしたファイルが破損していないことの証明になる。

具体的に FreeBSD に関して言うと、 FreeBSDには md5 というコマンドがあり これで 任意のファイルの MD5ハッシュ値 を算出できる。 例えば、
% md5 /etc/rc.conf
MD5 (/etc/rc.conf) = 155ee1e19f478808925cbbf8873608e1
のような感じ。

md5 以外として PGP や gpg、 最近では sha256 とかも 同様につかわれているようだ。

【参考リンク】

カテゴリー: FreeBSD , Security , Software     22:50 | コメント (0) | トラックバック (0)

2007年5月21日

FreeBSDにおける libidn のインストール

昨日の GNU IDN Library - Libidn からの続きとして、 このライブラリをFreeBSDに実際にインストールしてみる。

FreeBSDでは ご多分に漏れず GNU libidn も ports によりインストールできる。 ディレクトリは /usr/ports/dns/libidn/ となっている。 そこで
# cd /usr/ports/dns/libidn/
# make install
のように インストールを開始する。 makeから沢山の情報が表示されるが、 その中に
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
とあるので、libidn が /usr/local/lib にインストールされたことがわかる。

また、
test -z "/usr/local/include" || ../build-aux/install-sh -c -d "/usr/local/include"
 install  -o root -g wheel -m 444 'stringprep.h' '/usr/local/include/stringprep.h'
 install  -o root -g wheel -m 444 'idna.h' '/usr/local/include/idna.h'
 install  -o root -g wheel -m 444 'punycode.h' '/usr/local/include/punycode.h'
 install  -o root -g wheel -m 444 'idn-free.h' '/usr/local/include/idn-free.h'
 install  -o root -g wheel -m 444 'pr29.h' '/usr/local/include/pr29.h'
 install  -o root -g wheel -m 444 'tld.h' '/usr/local/include/tld.h'
test -z "/usr/local/include" || ../build-aux/install-sh -c -d "/usr/local/include"
 install  -o root -g wheel -m 444 'idn-int.h' '/usr/local/include/idn-int.h'
とあるので、各種の ヘッダー(インクルード)ファイルが /usr/local/include/ 下にインストールされたことがわかる。

そして
install -o root -g wheel -m 555 -s .libs/idn /usr/local/bin/idn
から、idn コマンドが ディレクトリ /usr/local/bin/ 下にインストールされたこともわかる。

それから
install  -o root -g wheel -m 444 'punycode.el' '/usr/local/share/emacs/site-lisp/punycode.el'
install  -o root -g wheel -m 444 'idna.el' '/usr/local/share/emacs/site-lisp/idna.el'
のように Emacs Lisp API もインストールされている。 その後、多数の manページがインストールされている。

【参考リンク】

カテゴリー: DNS・URL・URI , FreeBSD     22:28 | コメント (0) | トラックバック (0)

2007年4月12日

FreeBSDのインストール(4) インストールCD-ROMの焼き方

先日のブログで FreeBSDのブートCDの作成方法について触れたが、 それではそのブート用ISOイメージを 具体的にどうやってCDに焼き込んだか、について。

このファイルは標準的なISOイメージなので、 CDに書き込む方法は数多く考えられるが、その中でも今回は ウィンドウズ上のフリーなソフトで実現する方法を探してみた。

そこでまず 思いつくのが「CD Manipulator」である。 このソフトは、あまりにも基本性能が高く、 コピープロテクトがかかったCDまでコピーできてしまうほどだった。 しかし、違法利用が多いことを理由に 既にその開発を終了してしまっているが、 「CD Manipulator跡地」 に 最終バージョンと そのソースコードを置いてあるので 今でもダウンロードすることができる。 この「CD Manipulator」をつかっての ISOイメージ・ファイル 書き込み方法については 「CD Manipulator を使った ISOイメージファイルの書き込み方法」 に 詳しく説明してある。 ここの説明は、 CDのみでブート可能な Linux ディストリビューション「KNOPPIX(クノーピクス)」をCDに書き込む方法として紹介されている。

そこで、私も「CD Manipulator」を使って ここで紹介されている方法で書き込んでみた。 私も以前に「CD Manipulator」をCDのバックアップに使った経験があり、 そのときは何の問題もなく動作したのだが、 今回は、途中でエラーが出てしまった。 原因として考えられるのは、当時とは使っているドライブが違うこと。 過去にうまく行ったときは CDRW ドライブであったが、 現在はDVDも焼けるドライブである。 それが原因なのかもしれない、と思っている。

では実際には どうしたか、というと、 DVDドライブに付属してきた「VERITAS RecordNow DX V4.60」を使った。 このソフトのマニュアルには、ISOイメージの読み込み方法は説明してあるが 書き込み方法についての記述がなかった。 RecordNowには独自の「グローバルイメージ ファイル」というフォーマットがあるのだが、 このフォーマットのファイルを書き込み方法についての記述があったので それに従ってやってみた。 すると、自動的にISOイメージを認識してキチンと書き込んでくれた。 マニュアルでひとこと、その辺のことを書いておいてほしいところだ。

【参考リンク】

カテゴリー: FreeBSD     22:07 | コメント (0) | トラックバック (0)

2007年4月10日

FreeBSDのインストール(3) インストールCD-ROMの作り方

前回のブログまでで、FreeBSDインストレーションのための 起動フロッピーを作成する方法がわかった。 これで、問題なくFreeBSDをインストールできるのだが、 この方法ではフロッピーを何度も取り替えなければならない。 また、もしかすると このブログをお読みの方のPCには 既にフロッピー・ドライブが付いていないかもしれない。 そこでフロッピーからではなく、CD-ROMからブートする方法を調査してみた。

FreeBSDの インストレーションに関するドキュメントを読んでいると、 ネット経由でのインストレーションの際は、 必ず 起動フロッピーをまず作成しなければならない、 というような書き方がされているような気がする。 しかし、最近のPCのハードウェア環境からすると、 フロッピーを利用することは ほとんどなくなってきており、 また前述のとおり、既にフロッピー・ドライブが付いていないPCも 多々出回っている。 そこで実際に試してみると、 起動フロッピーの代わりにCD-ROMが利用できることがわかった。

そこで、今回のブログでレポートする方法は、 FreeBSDのインストールに必要な全てのファイルを ダウンロードして、それらをCDに焼こう、というのではなく、 ここではあくまでも、FreeBSDをネット経由(FTPによる)で インストレーションすることを目的とし、 そのための起動CD-ROM を作成してみることにする。

AT互換機用 FreeBSD 6.2 の CDイメージは、 FreeBSDのFTPサイトの 「ISO-IMAGES-i386/6.2」 に置いてある。 ここには、「6.2-RELEASE-i386-disc1.iso」とか 500MB以上の大きさのファイルが置かれているが、 これらをダウンロードしてCDを作成すると 全てをCD-ROMからインストールすることができるのであろう。 しかし、この方法ではダウンロードもその後のCD作成も時間がかかる。 ファイルが大きいので場合によっては、ダウンロードに失敗するケースもある。

一方、別に「6.2-RELEASE-i386-bootonly.iso」というファイルがあり その大きさが 24,848 KB となっている。 このイメージ・ファイルをダウンロード後、 それをCDに書き込めば、FreeBSDインストレーション用の起動CD-ROMが出来上がる。 大きさも お手ごろなので、それほどダウンロード時間もかからない。

実際に 出来たCD からブートすると 起動フロッピーからブートしたのと何ら変わらない。 違いはフロッピーを入れ替える手間がかからないことぐらいだ。 あとは、インストール設定のメディア選択で 「FTP」を 選択すると ネット経由でFreeBSDをインストールすることができる。

では、具体的に、ダウンロードした「6.2-RELEASE-i386-bootonly.iso」というファイルを どうやって CDに焼きこんだかについては 次回のブログとさせていただく。

【参考リンク】

カテゴリー: FreeBSD     22:03 | コメント (0) | トラックバック (0)

2007年4月 9日

FreeBSDのインストール(2) インストールFDDの作り方「RawWrite for windows」

前回のブログで FreeBSD の インストールフロッピーの作成には FreeBSD.org が提供している 「fdimage」 というツールがあること紹介した。 しかし残念ながら、このツールは 純粋なMS-DOS上では動作するが Windows 2000 や Windows XP 上では動作しない、ということを書いた。 今回のブログでは、その解決策を探った。

この問題点を解決するためには 結局、Windows 2000 や Windows XP でも動作する FDDイメージ書き込みソフトウェアがあればよいわけだ。 それが 「RawWrite for Windows」 である。 このソフトであれば、手元にウィンドウズしかなくても起動フロッピーの作成が可能だ。

この「RawWrite for Windows」の ウェブ・ページのロゴがペンギンになっているのを見ればお分かりのとおり、 このツールはLinuxをサポートするためのツールのようである。 しかしFreeBSDの起動フロッピーディスクの作成にも 何ら問題なく使用できた。

使い方は単純だが、注意点として、 書き込むイメージ・ファイルを指定する際、 拡張子「.img」 がディフォルト値になっている。 しかし、FreeBSDのサイトからダウンロードしたファイルは 拡張子が 「.flp」になっているので、 ファイルの種類を 「 All Files (*.*) 」にする必要がある。 あとは、単に、イメージファイルを フロッピーに書き込むだけ。

【参考リンク】

カテゴリー: FreeBSD     22:17 | コメント (0) | トラックバック (0)

2007年4月 8日

FreeBSDのインストール(1) インストールFDDの作り方

最近、FreeBSDをインストールしていないので、 最新バージョンを試してみることにした。 折角なので、その手順を記録してゆこうと思う。

私の場合、FreeBSDをインストールする際には、 最新版をインターネット経由で FTPからインストールすることにしている。 しかし、FreeBSDを いくらネット経由でのインストレーションすると言っても、 初めにPCを何らかのメディアで起動(ブート(Boot))してやる必要がある。 そのためには、まず、インストールフロッピー を作成する必要がある。

インストールフロッピーのイメージは .flp という拡張子のファイルになっており、 現段階でのFreeBSD最新バージョン 6.2 では FTPの 「floppies」 フォルダーにそれらのファイルが置いてある。 ちなみに このリンクは あくまでも AT互換機用であり、 マシンのアーキテクチャが違うとまた別のフォルダーになるので注意。 また、AT互換機用の日本語化された 「日本語インストーラ」については 「FreeBSD 6.2-RELEASE 日本語インストーラ」 に 情報がある。

これらのイメージをダウンロード後、インストールFDDを作成しなければならない。 既に FreeBSD などが手元にあり、そのマシン上で、 例えば、イメージファイル「kern.flp」から フロッピーを作成する場合、
# dd if=kern.flp of=/dev/rfd0
のようにして作成することができる。 ちなみに、上記例の「/dev/rfd0」は フロッピーのデバイス名であり、 これはシステムにより異なるので注意。

一方、これから初めてFreeBSDをインストレーションしようという場合は、 上記のような ddコマンドを使ったオペレーションができない。 そこで、FreeBSD.org では MS-DOS で利用できる 「fdimage」 というツールを提供している。 このツールの使用方法は、
E:\> tools\fdimage floppies\kern.flp A:
のようになる。 但し、この 「fdimage」 というコマンドは Windows 2000 や Windows XP とかの 「Command Prompt」からは 実行できないので注意が必要だ。 といっても、手元に 昔のMS-DOSなどない、という方も多いと思う。 そのためのツールは次回のブログでご紹介することにしよう。

【参考リンク】

カテゴリー: FreeBSD     22:12 | コメント (0) | トラックバック (0)

2006年11月11日

Ruby のインストール FreeBSD編

私はサーバーを何台か管理しているが それらは全て FreeBSD を使用している。 今回は、FreeBSD上での Ruby インストールについて

これに関しては、 Ruby インストールガイド「FreeBSD」 に書いてある。 ここに書いてあるとおり、 FreeBSDの場合、 バイナリパッケージである package コレクションと ソースから コンパイルしてインストールする Ports コレクション とがある。 私の場合、個人的な好みとして、 ソースからインストールしたいので いつも Ports コレクションからインストールすることにしている。

そこで Rubyも Ports コレクションからインストールしようと思う。 方法は基本的には、この Ruby インストールガイド「FreeBSD」 に書いてある通りなのだが、 この書いてあるPorts用のディレクトリ「/usr/ports/lang/ruby」が存在しておらず、 そのかわりに、「/usr/ports/lang/ruby16」や「/usr/ports/lang/ruby18」が見つかった。 そこで、Rubyのバージョン1.8 をインストールすることとして、その手順は
% su
# cd /usr/ports/lang/ruby18
# make install
# make clean
となる。 実際にやってみると「make install」には 2〜3分かかったが インストールは無事に終了した。

csh において 再ログインすることなく 新しいコマンドを試すためには
# rehash
コマンドを打てばよい。 こうすると、シェルが path 変数の示すディレクトリの内容を保持する内部ハッシュテーブル を再構成してくれるので 今インストールしたばかりのコマンドも認識されようになる。

【参考リンク】

カテゴリー: FreeBSD , Ruby     22:19 | コメント (0) | トラックバック (0)

2006年7月26日

Perlのバージョンアップ

以前のブログ ブログ「 MTプラグインが認識されない 」と 「 Storable.pm 」の続き。 パールのモジュールを追加できたので、 これで問題解決か、と思ったら甘かった。

MovableType の プラグイン「mt-ban-norefertb.pl」に関して 確かに、「Storable.pm」というパールのモジュールが見つからない、 というような内容のエラー・メッセージは出なくなったのだが、 代わりに、
Plugin error: /usr/www/users/mt/plugins/mt-ban-norefertb.pl Compilation failed in require at /usr/www/users/mt/lib/MT.pm line 293.
という別の エラー・メッセージが表示されるようになった。 それに、もう一つのプラグイン「mt-ban-ascii.pl」に関しての
Plugin error: /usr/www/users/mt/plugins/mt-ban-ascii.pl BEGIN not safe after errors--compilation aborted at /usr/www/users/mt/plugins/mt-ban-ascii.pl line 17.
というエラー・メッセージも以前から残っている。

さて、これらのメッセージから、自サイトの Perlのバージョンが古いのではないかと思われたので調べてみた。
% perl -v
This is perl, version 5.005_03 built for i386-freebsd
ちなみに上記2つのプラグインが問題なく動作している JTPA のサイトでも同じことを行ってみると、
%perl -v
This is perl, v5.8.3 built for i386-freebsd
今までPerlのバージョンが古くても、MovableType が問題なく動いてくれていたので、 そのままにしてきたのだが、この際、Perlの バージョンアップを行うことにした。

例のごとく私が使ってるサーバーのOS が FreeBSD なので
cd /usr/ports/lang/perl5.8/
make install
これを行うと、 /usr/local/bin/perl が新たに作られる。 ちなみに従来の バイナリは 「 /usr/bin/perl 」であり、これはこれで残ったままである。 そこで
cd /usr/bin
mv ./perl ./perl.org
ln -s /usr/local/bin/perl ./perl
これで、MovableType側の設定を全く変更することなく 新しいPerlを実行することができるようになった。 MTの管理画面で確認してみると、「利用可能なプラグインの設定」として 2つのプラグインがリストされるようになった。 これで少しはスパムが減るであろう。

カテゴリー: FreeBSD , MTスパム     22:41 | コメント (0) | トラックバック (0)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.