パッケージ管理

Managing broken packages

パッケージ一覧の中を動き回れるようになったら、いよいよ aptitude を用いてパッケージのインストールや削除をする時間です。本セクションでは、パッケージにインストール・削除・更新用のフラグをつける方法を学びます。

[ヒント]ヒント

システムの構成に変更を加えることが可能なのは root ユーザだけです。aptitude で実験をしたい場合は、root 以外のユーザで aptitude を安全に実行し、どんなかたちであれシステムに損傷を与えることのないようにするとよいでしょう。root のみができることをしようとすると、aptitude はそれを通知してくれます。続行したい場合は root のパスワードを入力しなければなりません。

All changes to a package are performed by first highlighting it in the package list, then pressing a key corresponding to the action which should be performed. The basic action keys [2] are + to install or upgrade a package, - to remove a package, and = to prevent a package from being automatically upgraded (this is known as holding the package). These actions are not performed immediately; aptitude will simply update the package list to show the change that has been requested.

For instance, in the screen shot below, the kaffeine-mozilla package was selected and + was pushed. The package is now highlighted in green and the letter i has appeared to the left of its name, to indicate that it will be installed; in addition, an estimate of the amount of space that the package will use is displayed.

[package view, kaffeine-mozilla package to be installed]
[ヒント]ヒント

いつでも、1 つ以上のパッケージに加えたあらゆる変更を 取り消し取り消し (Control+u) を用いて取り消すことが可能です。これは、アクションが予想外の結果をもたらしてしまい元に戻したくなった場合に有用です。

個々のパッケージに対して行うアクション以外に、もう 1 つ重要なアクションが利用可能です。U と入力すると、更新可能なあらゆるパッケージを更新しようとします。システムを最新状態に保つために、このコマンドを定期的に使用してください。

Managing broken packages

パッケージの状態を変更すると依存関係が満たされなくなることがあります。依存関係が満たされていないパッケージは破損しているといいます。破損パッケージが生じると aptitude は警告を発し、その発生原因を説明します。例えば、sound-juicer を削除しようとするとこんなことが起こります。

[package view, packages broken after attempting to remove sound-juicer]

As you can see, aptitude displays three indicators that something has gone wrong: first, the number of broken packages is displayed in the upper blue area; second, the lower half of the display changes to describe broken packages that are related to the currently highlighted package; third, a bar appears at the bottom of the screen with a suggestion on how to solve the problem. To quickly find broken packages in the package list, you can press b or search for ?broken.

[注記]注記

[1(1)/...] というテキストは、aptitude の依存関係解決ツールの進行状況を示しています。最初の数字は現在選択中の解決方法を示し、2 番目の数字は aptitude がこれまでに生成した解決方法の数を示します。...というテキストの存在は、生成された解決方法の他に追加の解決方法が存在するということを意味します。唯一可能な解決方法を生成したと aptitude が確信している場合は、表示は [1/1] となるでしょう。

どうやったらこの問題を解決できるかと aptitude が考えているか、さらに詳しく見るには、e を押してください。次のようなスクリーンが現れるでしょう。

[dependency resolver #1]

この状態から、. を押すとさらに多くの解決方法を見ることができ、, を押すと前に検討した解決方法に戻ることができます。現在選択中の解決方法を適用してパッケージ一覧に戻るには、! を押してください。例えば、上のスクリーンの表示中に . を押すと、次のような解決方法が提案されます。

[dependency resolver #2]

基本的な解決方法操作コマンドによる操作だけでなく、r を押して、同意しないアクションを拒否することも可能です。例えば、提案された最初の解決方法では sound-juicer の削除を取り消そうとしています ―― sound-juicer の削除は、まさに私たちが行おうとしていたアクションです! このアクションに対応する項目の上で r を押すと、aptitude に、このように sound-juicer の削除を取り消してはいけない、と教えることができます。

[dependency resolver #3]

御覧のとおり、sound-juicer を現在のバージョンに一時固定するというアクションに相当するリスト項目が赤色になりRという印がつけられて、このアクションが拒否されていることを示すようになりました。今後生成される解決方法 (すなわち、まだ表示されていないあらゆる解決方法) には、このアクションは含まれません。しかし、これまでに生成された、このアクションを含む解決方法も利用可能です。

[注記]注記

上のスクリーンショットでは、sound-juicer の説明がスクリーンの中央に表示されています。御覧のとおり、その下には、sound-juicer を現在のバージョンに一時固定させる原因となった依存関係が、aptitude が知っているこの依存関係の解決方法すべてとともに表示されています。

例えば、sound-juicer を削除しようとした直後にこの拒否を行った場合、. を押すと、sound-juicer のインストールを取り消し gstreamer0.8-cdparanoia をダウングレードするという解決方法を飛ばして次の解決方法が得られます。

[dependency resolver #4]

拒否は、新しく生成される解決方法、すなわち最後に生成された解決方法を表示中に . を押したときに生成される解決方法のみに適用されます。拒否の実行前に生成された解決方法には、拒否したアクションが依然として含まれています。拒否はいつでも、拒否したアクションをもう一度選択して r を押せば取り消せます。拒否を取り消せば、その前に飛ばされた解決方法など、そのアクションを含む解決方法をもう一度生成できます。

The opposite of rejecting an action is approving it. To approve an action, just select it and press a; this forces the problem resolver to choose the action whenever possible[3]. Approved actions will turn green and will be marked with A, as in the following screenshot:

[dependency resolver #5]
[重要]重要

壊れた依存関係を解決せずに g を押して選択をコミットすると、aptitude は現在選択中の提案を自動的に実行します。しかし、依存関係の問題を自動的に解決するのは難しいので、あなたはその結果に満足できない可能性があります。したがって、一般に、選択をコミットするには aptitude が何を行おうとしているのか確認するとよいでしょう。



[2] パッケージメニューを用いてパッケージに変更を加えることが可能です。詳しくは「The Package menu」を参照してください。

[3] アクションの承認は、すべての解決方法にアクションが含まれるように要求することとはわずかに異なります。承認とは、承認されたアクションと承認されていないアクションの間で選択をしなければならなくなるといつでも、問題解決ツールは承認されたアクションを選ぶ、ということです。承認された可能なアクションが複数ある場合は、それらすべてが解決方法に含められる候補となります。