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
(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)
【参考リンク】
- Redmine
- Redmine Help「Installing Redmine」
- RubyForge 「Redmine」ファイルリスト
- Redmine.jp
- Redmine「Redmineのインストール」
- Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!「第2回 環境構築/redMineのインストール・初期設定」
カテゴリー: 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さんのご冥福をお祈りする。
【参考リンク】
- The FreeBSD Project
- スラッシュドット ジャパン 「FreeBSD 6.3-RELEASE登場」
- FreeBSD Kernel Interfaces Manual「LAGG」
- FreeBSD unionfsの改善提案および修正状況
- 「IPv6などで活躍したWIDEのボード・メンバー萩野純一郎氏が逝去」
カテゴリー: 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)
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 マニュアル「truss -- システムコールをトレースする」
- UNIXの部屋 コマンド検索: truss
- 「トレースするには」
- FreeBSD マニュアル「procfs -- プロセスファイルシステム」
カテゴリー: 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 アーカイブからディスクに展開する
それから 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)