●この節の内容 ・ RPM パッケージ(Red Hat 系) P.8 インストールとアップデート P.9 アンインストール P.10 情報の表示 P.10 ソースパッケージからの構築 P.11 パッケージ内のファイルを取り出す P.11 ・ deb パッケージ(Debian 系) P.12 インストールとアップデート P.14 アンインストール P.14 情報の表示 P.14 パッケージ内のファイルを取り出す P.15 ローカル環境のファイルを apt-get でインストールする P.16 ・ tgz パッケージ(Plamo) P.17 インストールとアップデート P.20 アンインストール P.20 情報の表示 P.20
2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶パッケージ操作(Linux 環境)
2
2
RPM パッケージ(Red Hat 系)
パッケージのインストールや情報の表示は、rpm コマンドで行います。
Vine Linux(2.x 以降)は、Debian 環境で広く使われているaptコマンド(P.12)も使用でき
ます。
●インストール例
●アンインストール例
●情報表示例
$ rpm -qi vnc ← vnc パッケージの情報
Name : vnc Relocations: (not relocateable) Version : 3.3.6 Vendor: RealVNC Ltd
Release : 1 Build Date: 2002年11月27日 02時04分13秒
Install date: 2002年12月18日 09時46分30秒 Build Host: realvnc.com
Group : User Interface/X Source RPM: vnc-3.3.6-1.src.rpm Size : 1590658 License: GPL
URL : http://www.realvnc.com/
Summary : The original open-source cross-platform remote control solution Description :
VNC stands for Virtual Network Computing. It is remote control software which allows you to view and interact with one computer (the "server") using a simple program (the "viewer") on another computer anywhere on the Internet. The two computers don't even have to be the same type, so for example you can use VNC to view an office Linux machine on your Windows PC at home. VNC is freely and publicly available and is in widespread active use by millions throughout industry, academia and privately.
: $ rpm -qf /usr/bin/vncviewer ←/usr/bin/vncviewer のインストール元 vnc-3.3.6-1 # rpm -e vnc # rpm -ivh vnc-3.3.6-1.i386.rpm vnc ################################################## ↑パッケージ名 ↑経過表示 (-v オプション指定時) (- h オプション指定時)
インストールとアップデート
●rpm -i , -U と併用する主なオプション - v インストール内容(パッケージ名)を表示 - vv インストール内容を詳しく表示 - h, --hash インストールの経過をハッシュマーク(#)で表示 -- nodeps 依存関係を無視してインストールする -- force 既存のファイルを置き換えてもかまわずインストールする(ダウングレード時 にも試用可能) -- test 実際にはインストールせずインストール時の動作だけ行う(-vv と併用するとよい) $ rpm -ql vnc ← vnc パッケージからインストールされたファイルの一覧 /usr/bin/Xvnc /usr/bin/vncconnect /usr/bin/vncpasswd /usr/bin/vncserver /usr/bin/vncviewer /usr/share/doc/vnc-3.3.6 /usr/share/doc/vnc-3.3.6/LICENCE.TXT /usr/share/doc/vnc-3.3.6/README /usr/share/man/man1/Xvnc.1.gz /usr/share/man/man1/vncconnect.1.gz : ※パッケージファイルを対象にする場合は、「rpm -qlp vnc-3.3.6-1.i386.rpm」のように-p オプションを併用$ rpm -qa | grep -i xfree ←パッケージ一覧を表示(rpm -qa)して絞り込み(grep の-i は大小
文字を無視するオプション) XFree86-libs-4.2.1-0vl9 XFree86-legacy-4.2.1-0vl9 XFree86-75dpi-fonts-4.2.1-0vl9 XFree86-gl-devel-4.2.1-0vl9 :
2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶ # rpm -ivh パッケージファイル名(複数指定可) RPM パッケージのインストール # rpm -Uvh パッケージファイル名(複数指定可) RPM パッケージのアップグレード # rpm -Fvh パッケージファイル名(複数指定可) インストール済みのパッケージのみアップグレードアンインストール
●rpm -e と併用する主なオプション --nodeps 依存関係を無視してアンインストールする --allmatches 複数バージョンがインストールされているとき、まとめてアンインストール する --test 実際にはアンインストールせずアンインストール時の動作だけ行う(-vv と併 用するとよい)情報の表示
インストール前のパッケージの場合は、-p オプションを付けてパッケージファイル 名を指定する。 ●-p オプション使用例 $ rpm -qip RPM vnc-3.3.6-1.i386.rpm $ rpm -qlp RPM vnc-3.3.6-1.i386.rpm # rpm -e パッケージ名 アンインストール $ rpm -qi パッケージ名 パッケージの情報(説明)を表示 $ rpm -ql パッケージ名 パッケージ内のファイル一覧 $ rpm -qc パッケージ名 パッケージ内の設定ファイルを表示 $ rpm -qd パッケージ名 パッケージ内のドキュメントファイルを表示 $ rpm -qf ファイル名(フルパスで指定) インストール元パッケージを表示 $ rpm -qR パッケージ名 パッケージの依存ファイルを表示 $ rpm -qa インストール済みパッケージのリスト●rpm -q と併用する主なオプション - i パッケージ情報を表示する -- changelog パッケージの変更履歴を表示する - l, -- list パッケージに含まれるファイルを表示する - d, --docfiles パッケージに含まれる文書ファイルのみ表示する - c, --configfiles パッケージに含まれる設定ファイルのみを表示する -- provides パッケージが提供する機能(ライブラリなど)を表 示する -R,-- requires 依存しているファイル名を表示する -- scripts インストール/アンインストール時のスクリプトを 表示する -- whatprovides ライブラリファイル名 ライブラリの提供元 -- whatrequires ライブラリファイル名 そのライブラリを必要とするパッケージ
ソースパッケージからの構築
rpm 4.x 以降は rpmbuild コマンド(rpm-build パッケージ)を使用。パッケージ内のファイルを取り出す
cpio はアーカイブ形式の 1 つで、cpio コマンドは cpio および tar アーカイブを操作できます。
2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶ $ rpm --rebuild SRPM ファイル名 バイナリパッケージの構築 $ rpmbuild --rebuild SRPM ファイル名 バイナリパッケージの構築(rpm 4.x) $ rpm2cpio パッケージファイル名 > ファイル名 RPM パッケージを cpio 形式のファイルに変換する $ rpm2cpio パッケージファイル名 | cpio -t RPM パッケージに収録されているファイルの一覧を表示する$ rpm2cpio パッケージファイル名 | cpio -ir ファイル名
RPM パッケージに収録されているファイルを取り出す
$ rpm2cpio パッケージファイル名 | cpio -id
deb パッケージ(Debian 系)
パッケージのインストールは apt-get コマンドで、情報の表示は apt-cache コマ ンドで行います。 なお、apt を使用するには、/etc/apt/sources.list でパッケージリストの入手先を指定し ておく必要があります。 ●/etc/apt/sources.list の例 ●インストール例 ●アンインストール例# apt-get remove vncserver ← vncserver をアンインストール
Reading Package Lists... Done Building Dependency Tree... Done
The following packages will be REMOVED: vncserver
0 packages upgraded, 0 newly installed, 1 to remove and 74 not upgraded. Need to get 0B of archives. After unpacking 1203kB will be freed.
Do you want to continue? [Y/n] y ←[y]を入力
(Reading database ... 106741 files and directories currently installed.) Removing vncserver ...
# apt-get update ←パッケージリストを更新
Get:1 http://ring.exp.fujixerox.co.jp woody/main Packages [1777kB] Hit http://ftp.jp.debian.org woody/main Sources
Hit http://ftp.jp.debian.org woody/main Release :
# apt-get install vncserver ← vncserver をインストール
Reading Package Lists... Done Building Dependency Tree... Done
The following NEW packages will be installed: vncserver
0 packages upgraded, 1 newly installed, 0 to remove and 74 not upgraded. Need to get 0B/530kB of archives. After unpacking 1203kB will be used. Selecting previously deselected package vncserver.
(Reading database ... 106727 files and directories currently installed.) Unpacking vncserver (from .../vncserver_3.3.3r2-20_i386.deb) ...
Setting up vncserver (3.3.3r2-20) ...
deb http://www.dnsbalance.ring.gr.jp/pub/linux/debian/debian stable main contrib non-free deb http://www.dnsbalance.ring.gr.jp/pub/linux/debian/debian-jp stable-jp main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free
●情報表示例
$ apt-cache search vnc ← VNC に関するパッケージを表示
vncserver - Virtual network computing server software.
libvncauth0 - Virtual network computing authentication library. vnc-common - Virtual network computing server software.
$ apt-cache show vncserver ← vncserver パッケージの情報
Package: vncserver Priority: optional Section: x11
Installed-Size: 1175
Maintainer: Ola Lundqvist <[email protected]> Architecture: i386
Source: vnc
Version: 3.3.3r2-20 Replaces: vnc, vnc-doc Provides: xserver
Depends: libc6 (>= 2.2.4-4), libvncauth0, xlibs (>> 4.1.0), zlib1g (>= 1:1.1.4), xbase-clients, xserver-common, vnc-common
Pre-Depends: dpkg (>= 1.6.8) Recommends: xfonts-base Suggests: vnc-java Conflicts: vnc, vnc-doc Filename: pool/main/v/vnc/vncserver_3.3.3r2-20_i386.deb Size: 530004 MD5Sum: 109b3d755df60a18660f732c9b73b203
Description: Virtual network computing server software.
VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing `desktop' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures.
: $ dpkg -S /usr/X11R6/bin/vncserver ←/usr/X11R6/bin/vncserver のインストール元 vncserver: /usr/X11R6/bin/vncserver $ dpkg -L vncserver ← vncserver パッケージからインストールされたファイルの一覧 /. /etc /etc/vnc.conf /usr /usr/X11R6 /usr/X11R6/bin /usr/X11R6/bin/Xvnc /usr/X11R6/bin/vncserver /usr/X11R6/bin/vncconnect /usr/X11R6/man /usr/X11R6/man/man1 /usr/X11R6/man/man1/vncserver.1x.gz : ※パッケージファイルを対象にする場合は、「dpkg -c vncserver_3.3.3r2-20_i386.deb」のように-c オプションを使用
2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶インストールとアップデート
※指定したパッケージがインストールされていなければインストール、より新しいバージョンがパッケ ージリストにあったらアップグレードされる。 ●apt-get install と併用する主なオプション - f, --fix-broken インストールの修復を行う -d, --download-only ファイルのダウンロードだけを行う - s, --simulate, --no-act 実際にはインストールせずインストール時の動作だけ行うアンインストール
●apt-get remove と併用する主なオプション --purge 設定ファイルも削除する(指定しないと、設定ファイルは保存される) -s, --simulate, --no-act 実際にはアンインストールせずアンインストール時の動作だけ行う情報の表示
※ apt-cache はインストール前のパッケージに対しても使用可能(deb ファイルそのものを指定した い場合は dpkg コマンドを使う)。 # dpkg -i パッケージファイル名(複数指定可) ローカルに存在する deb パッケージファイルをインストール # apt-get remove パッケージ名 アンインストール $ apt-cache show パッケージ名 $ dpkg --info deb ファイル名 パッケージの情報(説明)を表示 $ dpkg -L パッケージ名 $ dpkg -c deb ファイル名 パッケージ内のファイル一覧 $ dpkg -S ファイル名 インストール元パッケージを表示 # apt-get install パッケージ名 deb パッケージをパッケージリストに従って ftp 等から取得し、インストール(またはアップグレード)●apt-cache のコマンドとオプション
stats キャッシュの状態(管理されているパッケージ数など)を表示する
pkgnames キャッシュ内のパッケージ名一覧を表示する。パッケージ名の先頭部
分を指定可能(たとえば apt-cache pkgnames libc で libc から始まる パッケージを一覧表示する) --all-names バーチャルパッケージや依存関係に欠損があるパッケージ名も含め て表示する unmet 未解決の依存関係を一覧表示する show パッケージ パッケージの情報を表示する -a, --all-versions すべてのバージョンについて表示する depends パッケージ 依存パッケージを表示する - i, -- important 重要な依存パッケージだけを表示する search キーワード パッケージ名と概要からキーワードを検索する -- names-only パッケージ名のみを対象に検索する --full 検索結果を show と同じ形式で表示する
パッケージ内のファイルを取り出す
deb パッケージは ar 形式のアーカイブで、arコマンドで操作できます。arは tar 以前から使用 されている伝統的なアーカイブ形式です。2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶ $ dpkg -l インストール済みの全パッケージのリスト $ dpkg -l "x *" x から始まるパッケージ名のみ(全パッケージは"*") インストール済みパッケージのリスト $ dpkg -x パッケージファイル名 ディレクトリ deb パッケージからパッケージ本体(インストールイメージ)を取り出す $ dpkg -e パッケージファイル名 ディレクトリ deb パッケージから制御ファイルを取り出す $ apt-cache depends パッケージ名 パッケージの依存ファイルを表示操作例:ローカル環境のファイルを apt-get でインストールする
apt-get コマンドは、あらかじめ取得したパッケージリストの情報に基づいてイン ストールを行います。 ローカル環境にある deb パッケージをインストールする場合、dpkg コマンドを使う こともできますが、パッケージリストを作成することで apt-get でもインストールが 可能になります。apt-get の場合、依存パッケージが必要に応じて自動インストール されるというメリットがあります。 本書に収録されている OpenOffice.org の deb パッケージを使ったインストール例を以 下に示します。/tmp ディレクトリにパッケージリスト(Packages.gz)を作成し、 sources.list に/tmp ディレクトリを追加して apt-get を実行しています。 apt 用のパッケージリストは、apt-ftparchive コマンドで作成できます。 ●実行例 なお、FTP サイト用のパッケージリストを作る場合は、パッケージのあるディレクト リで作業するのが確実です。 ●FTP サイト用のパッケージリストを作る例Debian 環境における OpenOffice.org のインストールについては、OpenOffice.org 日本 ユーザー会のページでも解説されています。
【Debian GNU/Linux にインストールする(OpenOffice.org 日本ユーザー会)】 http://blow-away.net/openoffice/docs/main/install/debian.html
# apt-ftparchive packages . | gzip -c9 > Packages.gz
カレントディレクトリにあるパッケージのリストを作成する (gzip の-c9 は圧縮率を最大にするオプション)
# cd /tmp
# apt-ftparchive packages ../cdrom/OpenOffice/deb/ | gzip > Packages.gz
“../cdrom/OpenOffice/deb/ ”にあるパッケージのリストを作成 (Packages.gz を作成するディレクトリからの相対パスで指定)
# echo "deb file:/tmp ./" >> /etc/apt/sources.list
sources.list に/tmp ディレクトリを利用する設定行(apt ライン)を追加
# apt-get update
tgz パッケージ(Plamo)
パ ッ ケ ー ジ の イ ン ス ト ー ル や 情 報 の 表 示 は 、p k g t o o l コ マ ン ド 、ま た は installpkg,removepkg コマンドで行います。 (f-1-01.bmp) ●インストール例 ●アンインストール例 # removepkg w3m Removing package w3m... Removing files: --> Deleting etc/w3m/mailcap --> Deleting etc/w3m/mime.types --> Deleting usr/bin/w3m --> Deleting usr/bin/w3mman --> Deleting usr/doc/w3m-0.3/ChangeLog --> Deleting usr/doc/w3m-0.3/NEWS --> Deleting usr/doc/w3m-0.3/README --> Deleting usr/doc/w3m-0.3/doc-jp/FAQ.html --> Deleting usr/doc/w3m-0.3/doc-jp/HISTORY --> Deleting usr/doc/w3m-0.3/doc-jp/MANUAL.html --> Deleting usr/doc/w3m-0.3/doc-jp/README : # installpkg w3m.tgz Installing package w3m.tgz... ●pkgtool コマンド2
パ ッ ケ ー ジ 操 作 ︵ L i n u x 環 境 ︶パッケージの情報や収録されているファイルのリストは、pkgtool コマンドで確認で きます。 (f-1-02.bmp) (f-1-03.bmp) パッケージ情報の表示は一般ユーザーでも可能です。この場合は/usr/sbin/pkgtoolj(日本語用) または/usr/sbin/pkgtoole(英語用)で起動します。 ●情報表示例 (pkgtool)
なお、インストール済みパッケージの内容は、/var/log/packages/ディレクトリ下に保 管されています。テキストファイルなので、less コマンドや grep コマンドで内容を 確認できます。 ●/var/log/packages/の活用例 $ less /var/log/packages/w3m ← w3m パッケージの内容およびインストールされたファイルのリスト パッケージ名: w3m 圧縮時のパッケージのサイズ: 413 K 非圧縮時のパッケージのサイズ: 1060 K パッケージの所在: diskn1 パッケージの内容: w3m: w3m(Web wo Miru) w3m: w3m: w3m はページャーから進化した Web ブラウザです。 w3m: テキストベースのシンプルな構成ですが、SSL にも w3m: 対応しています。 w3m: FILE LIST: usr/ usr/man/ usr/man/man1/ usr/man/man1/w3m.1.gz usr/man/ja_JP.eucJP/ usr/man/ja_JP.eucJP/man1/ usr/man/ja_JP.eucJP/man1/w3m.1.gz usr/bin/ usr/bin/w3m usr/bin/w3mman :
$ grep usr/bin/w3m /var/log/packages/* ←/usr/bin/w3m のインストール元を探す(パス名の先頭に“/”
を付けない) /var/log/packages/w3m:usr/bin/w3m /var/log/packages/w3m:usr/bin/w3mman ↑ ファイル名(=パッケージ名) $ ls /var/log/packages/x420* ←“x420*”というパッケージを一覧表示
/var/log/packages/x420bin /var/log/packages/x420fnts /var/log/packages/x420lib /var/log/packages/x420doc /var/log/packages/x420fscl /var/log/packages/x420man /var/log/packages/x420fcyr /var/log/packages/x420fsrv /var/log/packages/x420prog /var/log/packages/x420fkoi /var/log/packages/x420html /var/log/packages/x420fnon /var/log/packages/x420jdoc