メイン

Linux アーカイブ

2007年12月21日

Red Hat Linux 9 をインストールする

IP-PBX 用に準備したパソコンに Red Hat Linux 9 をインストールする。

インストールは CD-ROM から行う。ディストリビューション CD-ROM は先日購入した中古本「Red Hat Linux 9 Bible」に付属していたものが使える。Linux マシンをセットアップするのは随分久しぶりだが、最近のディストリビューションのインストールは Windows 並に容易(Windows のインストールが容易かどうかはさておき)。CD-ROM からシステムをブートし、画面の指示に従って必要項目を指定していけば1時間ほどでインストールは完了。

今回のインストールに関するメモ:

  • 言語は英語を選択。キーボードも英語キーボード。
  • マウスは2ボタン PS/2 マウスで、3ボタンエミュレーションを選択。
  • インストールの種類は Server を選択。
  • ディスクは自動パーティショニングを選択し、ドライブ全体を Linux で使う。
  • 搭載ドライブは1基58GBで、/boot が 102MB、/ が 58GB、swap が 510MB。
  • NIC は1基で eth0、DHCP によるアドレス取得。
  • ファイヤウォールのセキュリティレベルは Medium を選択。WWW、FTP、Telnet の incoming アクセスは許可。

インストールしたパッケージは以下の通り。デフォルトで選択されている内容に加えて、IP-PBX 以外にウェブ系開発用のローカルサーバーとして利用できるように FTP Server、SQL Database Server、Development Tools、及びアプリのビルドに備えて Kernel Development を追加。

Desktops
[ ] X Window System                    [0/33]
[ ] GNOME Desktop Environment          [0/35]
[ ] KDE Desktop Environment            [0/16]
Applications
[ ] Editors                            [0/4]
[ ] Engineering and Scientific         [0/7]
[ ] Graphical Internet                 [0/14]
[X] Text-based Internet                [3/7]
[ ] Office/Productivity                [0/12]
[ ] Sound and Video                    [0/19]
[ ] Authoring and Publishing           [0/9]
[ ] Graphics                           [0/13]
[ ] Games and Entertainment            [0/8]
Servers
[X] Server Configuration Tools         [9/13]
[X] Web Server                         [17/17]
    http - The httpd Web server
    httpd-manual - Documentation for the heepd Web server.
    hwcrypt - Hardware cryptographic accelerator support.
    mod_auth_mysql - Basic authentication for the Apache Web server using a MySQL
    mod_auth_pgsql - Basic authentication for the Apache Web server using PostgreSQL
    mod_perl - An embedded Perl Interpreter for the Apache Web server.
    mod_python - An embedded Python interpreter for the Apache Web server.
    mod_ssl - Cryptography support for the Apache Web server.
    php - The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)
    php-imap - An Apache module for PHP applications that use IMAP.
    php-ldap - A module for PHP applications that use LDAP.
    php-mysql - A module for PHP applications that use MySQL databases.
    php-pdbc - A module for PHP applications that use ODBC databases.
    php-pgsql - A PostgreSQL database module for PHP
    squid - The Squid proxy caching server.
    tux - User-space component of TUX kernel-based threaded HTTP server.
    webalizer - A flexible Web server log file analysis program.
[ ] Mail Server                        [0/7]
[X] Windows File Server                [2/2]
[ ] DNS Name Server                    [0/2]
[X] FTP Server                         [1/1]
    vsftpd - Very Secure Ftp Daemon
[ ] SQL Database Server                [5/5]
    perl-DBD-Pg - A PostgresSQL Interface for Perl.
    perl-DB_File - DB_File module for Perl
    postgresal-server - The programs needed to create and run a PostgreSQL server.
    unixODBC - A complete ODBC deiver manager for Linux
    mysql-server - The MySQL server and related files.
[ ] News Server                        [0/1]
[ ] Network Servers                    [0/14]
Development
[X] Development Tools                 [35/46]
[X] Kernel Development                 [3/4]
[ ] X Software Development             [0/18]
[ ] GNOME Software Development         [0/48]
[ ] KDE Software Development           [0/20]
System
[X] Administration Tools               [11/11]
[ ] System Tools                       [0/13]
[X] Printing Support                   [8/10]
Miscellaneous
[ ] Minimal
[ ] Everything

CD-ROM ドライブが割と高速(48X)なせいか、インストールは1時間もせずに終了。再起動すると Linux が立ち上がりログインプロンプトが表示される(Kernel 2.4.20-8 on an i686)。root でログインして ping を使ってネットワーク接続を確認するも問題無し。Linux のインストールは随分と楽になったものだ。

DSCF2593.jpg DSCF2598.jpg DSCF2690.jpg

2007年12月22日

RPM を使ってアプリケーションを追加する

Linux にアプリを追加する操作の覚書。

Red Hat, Inc. は Linux のパッケージング用に Red Hat Package Management (RPM) メソッドを立案。RPM を使うことで技術に弱いユーザでも簡単に Linux ソフトウェアをインストールすることを可能にした。RPM ツールを使うことにより、CD、ハードディスク、LAN、インターネットからインストールができ、インストールされているパッケージの追跡やパッケージ内容の閲覧も可能。

さて、これから IP-PBX 用ソフトウェアである Asterisk をインストールするわけだが、そのためには開発元の Subversion サーバ(svn.digium.com)からソースを取得してビルドしなければならない。そのためにローカルで Subversion(実際にはクライアント機能のみ)が必要になるが、残念ながら Subversion は Linux セットアップ時にはインストールされていない。そこで RPM を使って追加インストールする。

Subversion は手元にある Red Hat Linux CD-ROM の3枚目に格納されていたので、CD-ROM をマウントして直接インストールすれば良し。

# mount /mnt/cdrom
# rpm -U /mnt/cdrom/RedHat/RPMS/subversion-0.17.1-4503.0.i386.rpm

これで Subversion のインストールは完了。

2008年01月09日

Linux のファイアウォールを無効化する

Linux のファイアウォールに関する覚書。

新しいネットワークサービスをインストールしたのに外部からアクセスできないような症状に見舞われた場合、サービスの設定が誤っているのか、それともファイアウォールによって拒まれているのか、判断に悩むことが多々ある。それを確かめるために一時的にファイアウォール(iptables によるパケットフィルタリング)を無効にしたければ、--flush(または -F)オプションによりフィルタリングルールを初期化(全て削除)できる。

# iptables --help
Usage: iptables ...
       iptables -[LFZ] [chain] [options]
Commands:
--fliush   -F [chain]   Delete all rules in chain or all chains
...
# iptables -F

再びフィルタリングルールを適用するときには iptables サービスを再起動すれば良い:

# service iptables restart

2008年01月10日

Linux のサービスを自動起動する

ブート時に Linux のサービスを自動起動するための覚書。

Linux では起動スクリプトを用意してサービスの起動や停止を行う。起動スクリプトを用意したサービスをシステムブート時に自動起動するためには、各実行レベル(Run Level)に合わせたディレクトリ /etc/rc0.d~rc6.d に起動スクリプトへのシンボリックリンクを作成すれば良い。シンボリックリンクの作成は手作業で行っても良いのだろうが、chkconfig コマンドを使うと便利。

コマンド形式は以下の通り:

chkconfig - updates and queries runlevel information for system services
# chkconfig name 

例えば Asterisk をブート時に自動起動するならば以下のように指定する:

# chkconfig asterisk on

参考: 最終回 Linux起動の仕組みを理解しよう[rcスクリプト編] - @IT
http://www.atmarkit.co.jp/flinux/rensai/theory11/theory11a.html

補足: 起動スクリプトの手動操作に関して:
/etc/init.d ディレクトリ中のスクリプトを直接叩いてもいいが、間接的にスクリプトを実行する service コマンドがあるらしい。man コマンドにエントリが見つからなかったが参考書の文中では使われている。例として、以下の2つのコマンドは同様に Asterisk を起動する:

# /etc/init.d/asterisk start
# service asterisk start

2008年01月11日

Samba をセットアップする

メインで使っている Windows マシンのファイルバックアップに外付けハードドライブを使っている。手元に余っていた 160GB IDE ドライブを安物エンクロージャに納めた自作ドライブ2基なのだけど、いまいち使い勝手が良くない、というか動作に不安を感じている。インターフェースは USB 。パソコンに接続してもドライブはすぐに認識されず暫らくアクセスランプが点灯しっ放しとか、その状態でパソコンをシャットダウンしたり、ドライブ上のファイル操作(ディレクトリ削除など)を中断すると、結構安易にファイルシステムが破損したりとか。これまで2度ほど再フォーマットを余儀なくされたことがあった。

昨晩もメインマシンに接続してバックアップ作業をしていたのだけど、ドライブ上の古いディレクトリを丸ごと削除しようとしてあまりに遅いので中断したら、どうやらファイルシステムが破損した模様。ドライブにアクセスに行くと「フォーマットされていません」と Explorer がメッセージを表示する。ドライブは一応 Maxtor 製だけど安物エンクロージャの信頼性は不安だし、ドライブにはファイルシステムとしての論理構造のみがあって制御は OS で行うわけだから、容量が大きくなればなるほど OS の負荷が高くなりそうな気もする。まあいずれにしてもこのまま使い続けるのは好ましく無いよな。せっかく Linux マシンを立ち上げたことでもあるし、Samba を使ってそれをファイルサーバに仕立ててみたい。

1. Linux セットアップ時にインストールされている Samba 関係のパッケージを調べる:

# rpm -qa | grep samba
samba-common-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
samba-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1

2. SWAT というブラウザ経由で Samba を設定できるユーティリティがあるというので、CD-ROM からそれをインストールする:

# mount /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS
# rpm -Uhv samba-swat-2.2.7a-7.9.0.i386.rpm
# cd ; umount /mnt/cdrom

3. 念のため現在の設定ファイルをバックアップしておく。Samba 関係の設定ファイルは /etc/samba にある:

# cd /etc/samba
# cp smb.conf smb.conf.bak

4. SWAT を有効にする:

# chkconfig swat on
# service xinetd restart

LAN 内の Windows マシン上のブラウザから http://LinuxマシンのIPアドレス:901/ へアクセスするが、何の反応も無い。そういえば Linux マシン上で Web サーバの設定はしていなかったなと思い出して「それじゃ SWAT は使えないんじゃないの?」と単純なことに気づいて諦める。というわけで Samba の設定は手作業で行うことに。

ファイルサーバの運用に関しては、Windows マシンと同じユーザ名/パスワードのユーザを Linux マシンに作成して、それと同じ Samba ユーザも設定することで、Windows マシンから透過的に Samba ドライブにアクセスできるようにするという方針を決める。

5. Linux ユーザを作成する:

# useradd -m buzz
# passwd buzz
Changing password for user buzz.
New password: 入力しても表示されない
Retype new password: 入力しても表示されない
Passwd: all authentication tokens updated successfully.

6. Samba パスワードファイルを作成する:

# cat /etc/passwd | /usr/bin/mksmbpasswd.sh > /etc/samba/smbpasswd
# smbpassed buzz
New SMB password: 入力しても表示されない
Retype new SMB password: 入力しても表示されない
Password changed for user buzz.
Password changed for user buzz. なぜか同じ内容が2行表示される

7. Samba の設定ファイル /etc/samba/smb.conf はデフォルトのままで Samba を起動する:

# testparm  設定ファイルをチェックするユーティリティ
# service smb start

8. Windows マシン上の Explorer で [コンピュータの検索] で Linux マシンの IP アドレスを指定すると Linux マシンがリストされ、Linux マシン上の同名ユーザのホームディレクトリが見えるようになる:

samba01.jpg

これで設定は完了かと思いきや、早速使い始めたところ日本語ファイル名の扱いで問題点が発覚。特定の文字を含むファイル名を Samba ドライブに作成できない模様。具体的には「060819 ページ構成案」とか「モニタプログラム専用通信ソフト」といった名前のディレクトリを作成しようとすると以下のメッセージが表示されて失敗する。

samba02.jpg

Google で「Samba 指定されたパスが見つかりません」のキーフレーズで検索したところ、かなりの数の記事がヒットしたので、それらを読みながら対処方法を探す。個人のブログから掲示板の書き込みまでいろんなソースが見つかるが、僕が参考にしたのは以下のオフィシャルドキュメント。一番的確で信頼できる資料と思われる。

参考: Samba 2.0.x/2.2.x で日本語を利用する方法
http://www.monyo.com/technical/samba/docs/Japanese-HOWTO.ja.txt

この資料に従って /etc/samba/smb.conf に以下のエントリを追加する:

coding system = HEX
client code page = 932

Samba を再起動してから、Windows マシン上で先ほど問題になった日本語フォルダの作成を再び試みる。今度はエラー無しで正常にフォルダが作成できることが確認できた。

ほとんどデフォルトのままだけど、とりあえず Samba は動くようになった。SWAT を使うのを諦めたときにはさぞかし設定は面倒臭いだろうと予想したのだけど、割と簡単だったので助かったな。これからネットワーク経由で Windows マシンのファイル群をバックアップするのに使って行こう。

2008年01月15日

ハードディスクを増設する

Linux マシンをファイルサーバとして一層活用するためにハードディスクを増設し、LAN 上の Windows マシンからアクセスできるように Samba の設定を変更する。以下その手順の備忘録。

1) ハードディスクの増設

1. ハードディスクをインストールする(セカンダリ IDE のマスタ側に接続)。
2. マシンをブートして root でログインする。
3. 新しいドライブのデバイス名を探す:

# dmesg | less

4. fdisk でパーティションを作成する:

# fdisk /dev/hdc
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19929, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-7299, default 7299
Using default value 7299
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#

5. ディスクを ext3 形式でフォーマットする:

# mkfs -t ext3 /dev/hdc1
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
7340032 inodes, 14657196 blocks
732864 blocks (5.00%) reserved for the super user
First data block=0
448 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
  
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem fill be automatically checked every 27 months or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#

6. /etc/fstab にエントリを追加する:

/dev/hdc1   /usr1  ext3  defaults  1  1

7. マウントポイントを作成する:

# mkdir /usr1

8. リブートして df コマンドでドライブが追加されていることを確認する。

2) Samba の設定

1. /etc/samba/smb.conf に以下のエントリを追加する:

[buzzsdir]
   comment = Buzz's Directory
   path = /usr1/buzz
   valid users = buzz
   public = no
   writable = yes
   printable = no

2. /usr1/buzz ディレクトリを作成し、所有者を buzz に変更する:

# cd /usr1
# mkdir buzz
# chown buzz buzz

3. Samba を再起動して新しい設定を適用する。

これで LAN 上の Windows マシンから新しいドライブが見えるようになる。

About Linux

ブログ「dreamhound」のカテゴリ「Linux」に投稿されたすべてのエントリのアーカイブのページです。新しい順番に並んでいます。

前のカテゴリはIP電話です。

次のカテゴリはPDAです。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Powered by
Movable Type