web-dev-qa-db-ja.com

apt-getは重要なパッケージを「不要」として表示します

最近システムにKali Linuxをインストールしました。 Iceweaselがプリインストールされています。しかし、Iceweaselの代わりにfirefoxをインストールしたかったので このガイド に従い、Firefoxを正常にインストールしました。

今度はapt-getを呼び出すたびに、「自動的にインストールされ、不要になった」として多くのプリインストールパッケージが表示されます。

abhishek@ab-linux:~$ Sudo apt-get install
[Sudo] password for abhishek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  empathy empathy-common fonts-cantarell gcalctool gnome-backgrounds
  gnome-dictionary gnome-font-viewer gnome-icon-theme-extras gucharmap
  libavahi-gobject0 libcaribou-gtk-module libcaribou-gtk3-module
  libchamplain-0.12-0 libchamplain-gtk-0.12-0 libgdict-1.0-6 libgdict-common
  libgeocode-glib0 libtelepathy-farstream2 nautilus-sendto-empathy
  sound-theme-freedesktop telepathy-gabble telepathy-logger telepathy-salut
  vino
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded.
abhishek@ab-linux:~$ 

Linuxバージョン

abhishek@ab-linux:~$ uname -a
Linux ab-linux 3.7-trunk-AMD64 #1 SMP Debian 3.7.2-0+kali8 x86_64 GNU/Linux

これらのパッケージを重要かつ必須としてマークするにはどうすればよいですか?

9

間違いなく何も壊れていません。パッケージがインストールされるとき、依存する他のパッケージがしばしばあります。これらは自動的にapt-getによってインストールされます。以前は、これらのパッケージを追跡したい場合は別のプログラムを使用し、インストールした元のプログラムを削除した場合は削除する必要がありました。

現在、aptAuto-Installed状態フラグを実装して、明示的にインストールされたことのないこれらのパッケージを追跡します。パッケージをアンインストールするときに、--auto-removeオプションを追加して、Auto-Installedフラグが設定されていて、そこに依存しているパッケージがなくなったパッケージを追加で削除できます(パッケージは、もう1つは、APT::AutoRemove::RecommendsImportantおよびAPT::AutoRemove::SuggestsImportant構成オプションの値に応じてそれを提案または推奨します)。

パッケージのリストを見て、保持する価値があるかどうかを判断します。保持したいパッケージがデフォルトでAuto-Installedとマークされている場合があります。 apt-cache show package_nameを実行すると、さまざまなパッケージの機能に関する情報を取得できます。一部を保持する場合は、apt-mark manualに続けて、保持するパッケージの名前を指定できます。

通常、ライブラリパッケージ(libで始まるほとんどのパッケージ)をAuto-Installedとしてマークする必要があることに注意してください。これらのパッケージを独自にインストールする理由はいくつかあります。他のプログラムは通常、他のライブラリに実行しますが、それ自体ではほとんど役に立ちません。ライブラリ自体に依存する開発パッケージ(末尾が-dev)が必要なため、ライブラリに対してソフトウェアをコンパイルする場合でも、ライブラリを明示的にインストールする必要はありません。

また、aptitudeを使用すると、コマンドラインからaptitude unmarkautoを実行したり、cursesインターフェイス内で変更したりできます。インターフェイスのパッケージリスト内で、自動的にインストールされるすべてのパッケージの横にAがあります。この状態を変更するには、mを使用して自動インストールパッケージを手動としてマークし、Mを使用して再度手動としてマークします(lを使用して検索ダイアログを開き、Enterをクリックしてパッケージの詳細を表示します)。

7
Graeme

これらのすべてのパッケージにマークを付けて、それらが重要で削除されないようにするには、次のようにします。

apt-mark showauto | xargs Sudo apt-get -y install

基本的に、プログラムをインストールするようにaptに指示することで、システムに永続的に残したいことを伝えます。

3
mulllhausen

Apt-getによって提案されたコマンド、つまりapt-get autoremoveでそれらを削除しないのはなぜですか?

これらがデフォルトでKaliにインストールされ、以前のWebブラウザーで使用されていて、このブラウザーを削除したために使用されなくなった場合、問題はありません。

さらに、いずれかのパッケージが再び必要になった場合は、apt-getを使用して明示的にインストールすると、「自動的にインストールされ、不要になった」と表示されなくなります。

他の解決策はそれらを手動でインストールすることかもしれません。それらはapt-getで「自動的にインストールされ、不要」とマークされなくなりますが、役に立たないパッケージがあり、これはIMOの最適なソリューションではありません。

0
Laurent C.