情報システム管理 #5

情報システム管理
8. アプリケーションのインストール
水野嘉明
本日の内容
1. ソースとパッケージの比較
2. ソースによるインストール
3. パッケージ
2
1. ソースとパッケージの比較
 UNIXで利用できるソフトウェアの配
布方法には、ソース とパッケージ と
いう2種類の形式がある
管理者は、それぞれの特徴を知り
どちらを利用すべきかを判断しな
ければならない
3
1. ソースとパッケージの比較
 ソースコードによる配布
自分でコンパイルしてインストール
する
 パッケージ
コンパイル済みの実行形式ファイ
ル(バイナリファイル)と関連ファイ
ル類が、まとめて配布される
4
1. ソースとパッケージの比較
 ソースによる配布のメリット
ハードウェアや環境の違いに対応
 UNIXの種類やCPUアーキテクチャ
により、バイナリは異なる
カスタマイズが可能
最新の機能が利用できる
オープンソースだから可能
5
1. ソースとパッケージの比較
 ソースによる配布のデメリット
面倒な手順が必要
時間と手間がかかる
不具合に対処するには、ある程度
の知識・経験が必要
6
1. ソースとパッケージの比較
 パッケージの普及
UNIX/Linux の普及にしたがい、
実行ファイルが配布されてきた
実行ファイルだけでは、不便
 インストールの履歴
 相互の依存関係
パッケージ
などの情報が必要
7
1. ソースとパッケージの比較
 インストール時の問題点
依存関係
「あるパッケージを動作させるには、別
のパッケージが必要」 という関係
インストール時期・バージョンによ
り、相互の依存関係に矛盾が出る
ことがある
「パッケージAはBに依存、Cは古い
バージョンのB' に依存」 など
8
1. ソースとパッケージの比較
 お勧めは
パッケージ
 ソースによりインストールするのは、
どうしても最新のソフトウェアが
必要な場合
特殊なシステムにあわせてカスタ
マイズする必要がある場合
9
2. ソースによるインストール
 通常は、次のようなステップとなる
1. ソースファイルの入手
2. ファイルの展開 (tar)
3. ファイルの内容のチェック
4. configureの実行
5. makeの実行
6. make install の実行
例
外
も
あ
る
10
2. ソースによるインストール
 1.
ソースファイルの入手
ソースファイルは、様々な方法で
配布されている
FTPサイト/Webサイト
DVD/CD-ROM
など
それらのメディアから、自分のシス
テムにコピーする
11
2. ソースによるインストール
 2.
ファイルの展開
(多くの場合) ソースは、tar という
コマンドで1つにまとめられ、gzip ま
たは bzip2 というコマンドで圧縮さ
れている
これを適当なディレクトリに展開す
る
12
2. ソースによるインストール
tar : tape archiver
複数のファイル、ディレクトリを、一
つのファイルにまとめる
gzip : GNU zip
ファイルを圧縮する
(複数ファイルを一つにまとめる機
能はない)
13
2. ソースによるインストール
tar コマンドによる展開
$ tar zxf foo.tar.gz
$ tar jxf foo.tar.bz2
tarはgzip等をサ
ポートしている
14
2. ソースによるインストール
 3.
ファイルの内容のチェック
いろいろなファイルが含まれてい
るので、内容をチェックする
特に、INSTALLやREADME とい
うファイルには、コンパイルやイン
ストール方法、注意点などが書か
れている
15
2. ソースによるインストール
ソースのアーカイブに含まれる主
なファイル
AUTHORS
COPYING
COPYRIGHT
ChangeLog
INSTALL
LICENSE
NEWS
README
ソフトウェア作成者に関する情報
配布に関する情報
著作権に関する情報
変更履歴
インストール方法に関する情報
使用ライセンスに関する情報
変更点などに関する情報
インストールや使用法に関する情報
16
2. ソースによるインストール
 4.
configureの実行
各々のシステムに合わせて、ソー
スを変更する必要がある
手作業では大変
というシェルスクリプト
により、自動生成
configure
17
2. ソースによるインストール
configure スクリプトを実行すると
システム毎の違い等を検出
必要なファイル(Makefileなど)を
自動的に作成
カスタマイズの指定も可
18
2. ソースによるインストール
configure の例
$ ./configure
$ ./configure --prefix=/usr
インストール先を /usr に変更し
ている例
19
2. ソースによるインストール
 5.
makeの実行
コンパイル作業は、make コマンド
により行う
$ make
多数のソースファイルをコンパイル
し、ライブラリとリンクする
20
2. ソースによるインストール
作業内容は、Makefile というファイ
ルに書かれている
Makefileは (多くの場合)configure
により作成される
21
2. ソースによるインストール
Makefile
の例
22
2. ソースによるインストール
 6.
make install の実行
コンパイルされたファイルを、ファ
イルシステムにインストールする
root権限が必要
23
3. パッケージ
 Unixのパッケージには、以下のよう
なものがある
Debian系 : deb
RedHat系 : rpm
BSD
: ports / Packages
Solaris
: pkg
24
3. パッケージ
 パッケージの操作
パッケージ操作用のコマンドにて、
インストール、アップデート、削除
等を行う
パッケージの種類により、操作用
コマンドは異なる
25
3. パッケージ
基本的な操作コマンド
パッケージ
deb
rpm
Packages
pkg
コマンド
dpkg コマンド
rpm コマンド
pkg_add / pkg_delete など
pkgadd / pkgrm など
26
3. パッケージ
 基本的なコマンドだけでは使いにくい
目的とするパッケージの検索
依存関係の検索
アップデート情報の検索
パッケージ管理コマンド
rpm
deb
yum
apt
27
3. パッケージ
 公開鍵方式による署名
パッケージには、PGP、GPG等の
公開鍵方式による署名がされてい
ることがある
= 正当性の証明のため
公開鍵を取り込むことにより、正当
性が確認できる
28
3.1 rpmコマンド
 パッケージのインストール
$ rpm -i foo-1.0.0-1.i386.rpm
参考: パッケージ命名規則
ソフト名-バージョン.CPU種別.rpm
29
3.1 rpmコマンド
 パッケージのアップデート
$ rpm -U foo-1.0.0-1.i386.rpm
$ rpm -F foo-1.0.0-1.i386.rpm
古いパッケージがインストールされて
いない場合、-Uならばインストールさ
れる。 -Fならば、何もしない。
30
3.1 rpmコマンド
 パッケージの削除(アンインストール)
$ rpm -e foo
 パッケージの確認
$ rpm -q foo
$ rpm -qa
インストールされている
全パッケージを表示
31
3.1 rpmコマンド
パッケージ リストの表示例
32
3.2 yumコマンド
 パッケージのリストを保持
システムにインストールされている
パッケージのリスト
リポジトリ (パッケージをまとめて
保管している場所)上の最新版の
パッケージのリスト
 これらに基づきパッケージを管理
 依存関係も自動的に解決
33
3.2 yumコマンド
 パッケージのインストール
$ yum install foo
• rpm と違い、パッケージの名前だけ
を指定すればよい
• 他のパッケージが必要な場合(依
存関係がある場合)、そのパッケー
ジも自動的にインストールされる
34
3.2 yumコマンド
 アップデート
$ yum update [foo]
• 現在インストールされているパッ
ケージの新しいバージョンがリポ
ジトリにあれば、アップデートする
• パッケージを指定しない場合は、
全てのパッケージが対象
35
3.2 yumコマンド
 パッケージの削除
$ yum remove foo
 パッケージの検索
$ yum search keyword
• パッケージ名または説明文に
「keyword」を含むパッケージを探す
36
3.2 yumコマンド
 パッケージの詳細情報表示
$ yum info foo
 リポジトリ上のパッケージ一覧
$ yum list
37
3.2 yumコマンド
詳細情報表示例
38
3.3 dpkg コマンド
 パッケージのインストール
$ dpkg -i foo_1.0.0-1_i386.deb
 パッケージの削除
$ dpkg -r foo
 パッケージ情報の閲覧
$ dpkg -l [foo]
39
3.3 dpkg コマンド
 パッケージの詳細情報
$ dpkg -s foo
 パッケージのファイル一覧
$ dpkg -L foo
40
3.4 apt コマンド
と同様、dpkg(deb
パッケージ)に対して、aptコマンドが
ある
rpm ⇔ yum
dpkg ⇔ apt
 考え方は、yumとほぼ同じ
 rpmに対するyum
41
3.4 apt コマンド
 パッケージの一覧表を更新
$ apt-get update
 全パッケージを最新版に更新
$ apt-get upgrade
 パッケージのインストール
$ apt-get install foo
42
3.4 apt コマンド
 パッケージの削除
$ apt-get remove foo
 パッケージの検索
$ apt-cache search keyword
 パッケージの詳細情報の表示
$ apt-cache show foo
43
3.5 BSDの場合
 BSDのpackages/portsは、Linuxと
は考え方がかなり違う
 コマンド
pkg_add、pkg_delete などがある
(rpm、dpkgコマンドに相当)
 sysinstall
メニュー方式
依存関係のあるパッケージを自動的に
入れてはくれない
44
3.5 BSDの場合
 sysinstall
の画面例
45
3.5 BSDの場合
 ports
ソースコードの取得、コンパイル、
インストールを行う
依存関係のあるパッケージも、イ
ンストールしてくれる
46
3.5 BSDの場合
カテゴリ別にディレクトリがあり、そ
の下に各アプリケーションのディレ
クトリがある
例) /usr/ports/japanese/less
そのディレクトリにて、下記を行なう
make configure
make
make install
47
3.6 リポジトリ
 リポジトリ
(repository) とは
「貯蔵庫」の意
一般には、設計情報やプログラム
などを保管しておくデータベースの
こと
ここでは、パッケージをまとめて保
管しているWebサイト を指す
48
3.6 リポジトリ
 リポジトリの追加
システムインストール時に、オフィシ
ャルサイトが登録されている
リポジトリを追加したいことがある
混雑したサイトを避ける
オフィシャルにはないパッケージ
異なるバージョンのパッケージ
49
3.6 リポジトリ
 リポジトリの追加
(apt)
 リポジトリのアドレスは
/etc/apt/sources.list
に記述されている
ここに、追加するリポジトリのアドレ
スを追記する
50
3.6 リポジトリ
 リポジトリの追加
(yum)
/etc/yum.repos.d/???.repo
(??? は、ディストリビューション
毎に異なる)
/etc/yum.repos.d/fedora.repo
/etc/yum.repos.d/CentOSBase.repo など
51
3.6 リポジトリ
 リポジトリを追加・変更した場合
リポジトリの公開鍵を取得しなけれ
ばならないことがある
リポジトリのWebサイトに説明が
あるはず
52
3.7 GUI ツール
(dpkg、apt) などは、コマ
ンドラインベースのコマンド (CUI)
 GUIベースのツールが、それぞれ用
意されている
 rpm、yum
53
3.7 GUI ツール
 例1
(KNOPPIX)
54
3.7 GUI ツール
 例2
(Fedora)
55
3.8 その他
 セキュリティ上のアップデートは、忘れ
ずに行なわなければならない
アップデートにより、不具合が発生
することもある
テストしてからアップデート
56
3.8 その他
 KNOPPIXでは
書き換えのできないCD-ROMへの
リンクが、多数張られている
インストールに失敗しやすい
57
【課題6】
vsftpd をインストールせよ
FTP (File Transfer Protocol) とは
ファイルを転送するための通信プロ
トコル
サーバで FTPサーバを動かすと、
他のマシンからファイル転送を行う
ことができる
 FTPサーバ
58
【課題6】
 インストール方法
インストールは、root で行う
apt-get コマンドの前には
LC_ALL=C
をつける
(日本語をうまく処理できない場合が
あるため、環境変数を一時的に変
更する)
59
【課題6】
リポジトリ登録ファイル
/etc/apt/sources.list を、Webサイト
にある sources.list で置き換える
(KNOPPIXが古いため、アップデー
トするものが多すぎてエラーとなる
のを防ぐ)
60
【課題6】
プロキシを設定
 /etc/apt/apt.conf に、次の行を追
加する
Acquire::http::Proxy
"http://kawagate2.toyo.ac.jp:8080/";
注1: 実際は、1行で書く
注2: 自宅等では、不要
61
【課題6】
パッケージ一覧を更新
# LC_ALL=C apt-get update
注:いくつかエラーが出るが無視
次に、パッケージをインストール
# LC_ALL=C apt-get install vsftpd
注:「Install these packages without
verification ? 」の問には 「y」
62
【課題6】
 vsftpdの設定ファイルは、
/etc/vsftpd.conf
ローカルユーザの書き込みを可に
local_enable=YES
write_enable=YES
コメントアウトしてある行を有効に
する (先頭の # を取り除く)
63
【課題6】
書き換え後、忘れずreloadすること
設定できる項目は、他にも多数ある
anonymous (匿名) FTPは、不要
ならば止めた方がよい
他にどのような設定項目があるか
ファイル中のコメントや manペー
ジを読んでおくとよい
64
【課題6】
 デーモンの起動は、インストール時に
自動的に設定される
invoke-rc.d の必要はない
(インストールにより、起動している)
デフォルトの設定を変更する場合は
update-rc.d を 用いる
(本課題では、そのままでよい)
65
【課題6】
 Windowsから
FTPによりログインせよ
IPアドレスは、ifconfigにより調べる
Windowsの コマンドプロンプト
(CMD.EXE)を起動し、FTPコマンド
を実行する
> ftp 192.168.11.7
66
【課題6】
自分名のユーザでログインした後、
“ls -l”コマンドを実行せよ
以上の操作を行った画面をキャプ
チャし、Word 画面に貼り付け、
report6.docxとせよ
report6.docx を、manabaのレポー
ト6として提出せよ
67
【課題6】
こんな画面になるはず
68
次回の予定
DNSサーバ
1. ドメイン名
2. DNSサーバの役割と仕組み
3. DNSサーバの設定
69
お疲れ様でした