| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
東京大学のミラーサイトをメインで利用するように変更する。
Gentoo ~ # vi /etc/make.conf <= 設定ファイルの編集 GENTOO_MIRRORS="ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/ \ http://mirror.gentoo.gr.jp \ http://ftp.jaist.ac.jp/pub/Linux/Gentoo/" SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage/" |
Portageツリーの更新
パッケージをインストールする際、Portageツリーが最新の情報を知ることが出来るようにする。
この作業は定期的に行うのが望ましい。
Gentoo ~ # emerge --sync |
emergeコマンドの利用
「Gentoo」ではemergeコマンドを利用し、パッケージの管理を行う。
書式は以下の通り。
Gentoo ~ # emerge オプション パッケージ名 |
主なオプションは以下の通り。
| オプション | 説明 |
|---|---|
| 無し | インストール |
| -s | パッケージの検索 |
| -S | DESCRIPTIONも検索 |
| -p | インストールせず、何が行われるか確認 |
| -a | pオプションを実行後、インストールするか問い合わせる |
| -v | -p や -a と合わせて使う。パッケージが使うUSEフラグ、OVERLAYも表示 |
| -f | ソースのダウンロードのみ |
| -t | 依存関係をツリー形式で表示(p や a オプションと合わせて使う) |
| -C | アンインストール |
| -c | 古いバージョンを削除 |
| -k | バイナリパッケージからインストール(バイナリパッケージが無い場合、普通にコンパイル) |
| -K | バイナリパッケージからインストール(バイナリパッケージが無い場合、アボート) |
| -u | パッケージの更新、必要に応じてダウングレードも行う |
| -b | バイナリパッケージを作成しつつインストール |
| -B | バイナリパッケージの作成のみ |
| -e | 依存パッケージも遡って全てコンパイルし直す |
| -O | 依存関係を無視してパッケージのインストールを試みる |
残された依存関係の削除
-Cオプションでパッケージを削除した場合、依存関係にあるものは削除されない。
そこで、次のようにして依存関係を削除する。
gentoolkitパッケージのインストール
revdep-rebuildを使う為にgentoolkitパッケージをインストールする。
Gentoo ~ # emerge gentoolkit |
依存関係の削除
Gentoo ~ # emerge --depclean <= 依存関係の削除(不要なパッケージの削除) Gentoo ~ # revdep-rebuild <= 削除したパッケージに動的リンクされていたアプリケーションをリビルド |
不要ファイルの削除
/usr/portage/distfiles/ にソースファイル等を保存するが、不要なものが削除されない。
そこで、以下のコマンドにより利用されていないバージョンのファイルを削除する。
Gentoo ~ # eclean distfiles |
システムの更新には「system」と「world」があるが、それぞれの違いは以下の通り。
| system | Gentooが指定したパッケージ(重要なパッケージ群) |
| world | 自分が(明示的に)インストールした全パッケージも対象 |
この為、system に入っているパッケージはworld にも入っている。
なお、worldの対象となるパッケージは
/var/lib/portage/world
に記述されている。
システムを更新するには上記のパッケージを選択してアップグレードするが、emergeコマンドを利用する。
この時のオプションは以下の通り。
| オプション | 説明 |
|---|---|
| -u | 自分が(明示的に)インストールしたパッケージだけアップグレード |
| -u --deep(-uD) | 依存関係も含めてアップグレード |
| -u --deep --newuse(-uDN) | 既にインストールしているパッケージも最新のUSEフラグの状態でemergeし直す(完全な更新) |
完全なシステムの更新
システムを完全に更新するには、以下の手順で行う。
この作業はマシン性能にも因るが非常に時間が掛かる。
なお、設定ファイルの更新に dispatch-conf を利用しているが、初めて利用する場合、以下の「dispatch-confの利用」を参照。
Gentoo ~ # emerge -u --deep --newuse world <= システムを完全に更新する Gentoo ~ # emerge --depclean <= 依存関係の削除(不要なパッケージの削除) Gentoo ~ # revdep-rebuild <= 削除したパッケージに動的リンクされていたアプリケーションをリビルド Gentoo ~ # dispatch-conf <= 設定ファイルの更新 |
上記の
Gentoo ~ # emerge -u --deep --newuse world
の途中でエラーとなった場合、設定ファイルを修正する等して再度実行するが、
普通に実行するとエラー以前のものまでリビルドされてしまう。
そこで、以下のように実行する。
Gentoo ~ # emerge --resume |
これで前回中断したemergeを再開するので、時間の短縮になる。
なお、この間に他のemergeを実行すると再開情報が失われるので注意。
「Gentoo」では設定ファイルの更新は自動で行われない為、emerge コマンドでパッケージをアップデートした場合、 「dispatch-conf」で設定ファイルを更新する。
「RCS」のインストール
設定ファイルの履歴を取るために「RCS」を利用する。
Gentoo ~ # emerge rcs <= 「RCS」のインストール |
「dispatch-conf」の設定
Gentoo ~ # vi /etc/dispatch-conf.conf <= 設定ファイルの編集 use-rcs=no ↓ use-rcs=yes <= 変更(履歴管理に「RCS」を利用する) replace-wscomments=no ↓ replace-wscomments=yes <= 変更(空白やコメントが変更されただけのときに自動処理する) replace-unmodified=no ↓ replace-unmodified=yes <= 変更(ユーザーが変更していないファイルは自動処理する) |
「dispatch-conf」の実行
Gentoo ~ # dispatch-conf |
自動処理できないファイルは差分が表示され、コマンドの入力待ちの状態になる。
この時に利用できるコマンドは以下の通り。
| コマンド | 説明 |
|---|---|
| u | 更新ファイルで置き換える |
| z | 更新ファイルを削除し、古いファイルを維持する |
| n | なにも処理せずにスキップする |
| e | 更新ファイルを編集する($EDITORを利用) |
| m | 対話的なマージを行う |
| l | 古いファイルと更新ファイルの差分を表示する |
| t | 更新ファイルをトグルで切り替える |
| h | ヘルプを表示する |
| q | 「dispatch-conf」を終了する |
m コマンドで、マージを行う場合、以下のコマンドが利用できる。
| コマンド | 説明 |
|---|---|
| ed | ヘッダで装飾して両方の変更を編集 |
| eb | ヘッダなしで両方の変更を編集 |
| el | 古いバージョンを編集 |
| er | 新しいバージョンを編集 |
| e | 新規にその部分を入力する |
| l | 古いバージョンを利用する |
| r | 新しいバージョンを利用する |
| s | 結果を表示せず共通行を含む |
| v | 結果を表示して共通行を含む |
| q | 終了 |
m コマンドで編集が終わると最初のプロンプトに戻るが、ここではマージ後のファイルが更新後のファイルとして扱われる。