私は、debian squeezeの比較的新しいインストールで、ポート111でrpc.statdを開いていました。 rpcサービスを無効にして、ボックスの開いているポートを閉じたいので、apt-getパージポートマップを実行しました。私は次のものを提示されました:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libtirpc1 rpcbind
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libtirpc1 rpcbind
The following packages will be REMOVED:
nfs-common* portmap*
The following NEW packages will be installed:
libtirpc1 rpcbind
0 upgraded, 2 newly installed, 2 to remove and 0 not upgraded.
Need to get 127 kB of archives.
After this operation, 438 kB disk space will be freed.
Do you want to continue [Y/n]? n
簡単に言うと、最初にapt-get purge nfs-commonを実行し、次にapt-get purge portmapを実行することで、追加のパッケージをインストールせずにポートマップを削除できました。
誰かがこの行動を説明できますか?最初のケースでポートマップをパージしようとしたときに、apt-getがrpcbindとlibtirpc1をインストールしようとするのはなぜですか?上記の出力から、apt-getが最初にポートマップとともにnfs-commonを削除することを意図していることは明らかです。私が見つけた他の唯一の関連する詳細は、famがポートマップに依存しているということですが、これはリモートサーバーであり、famとGUIは必要ありません。これはバグですか、それとも何かが足りませんか?もしそうなら、レポートは誰に向けられるべきですか?
APTは、システムが壊れたままにならないように設計されています。サーバーを実行していることはわかりません。パッケージなどは必要ありません。
他のパッケージが削除しようとしているものに依存している場合、パッケージを削除しようとすると、このような動作が見られますが、代わりに別のパッケージを使用することもできます。パッケージを削除しようとすると、APTは、代替のインストールを提案します。
メール転送エージェント(メールサーバー)を削除しようとすると、これが頻繁に発生します。 MTAを必要とするプログラムは多数あるため、eximをパージしたり、接尾辞を付けたりしようとすると、もう一方がインストールされます。
/ etc/default/portmapで次の手順を実行して、ポートマップが外部インターフェイスでリッスンしないようにします。
# If you want portmap to listen only to the loopback
# interface, uncomment the following line (it will be
# uncommented automatically if you configure this
# through debconf).
OPTIONS="-i 127.0.0.1"
次に、次のことを行います。
/etc/init.d/portmap restart
問題は非常に単純だと思いますが、注意が必要です。出力からポートマップを削除したため、Aptはrpcbindをインストールします。
The following extra packages will be installed:
libtirpc1 rpcbind
ただし、nfs-commonも削除されるため、rpcbindは不要になっていることにも気付きます。出力から:
The following packages were automatically installed and are no longer required:
libtirpc1 rpcbind
Use 'apt-get autoremove' to remove them.
「y」と答えた場合、aptはportmapとnfs-commonを削除し、libtirpc1とrpcbindをインストールします。次に、apt-get autoremoveを実行して、libtirpc1とrpcbindを削除します。
Aptの意思決定プロセスにおいて重要なものかもしれないと思います。
つまりルール:ポートマップを削除してから、rpcbindをインストールします
ルールよりも重要です:nfs-commonが削除されたため、rpcbindは必要ありません
最初のルールは、nfs-commonが削除されていることをまだ知らなくてもチェックできます。依存関係が壊れていること以上に、パッケージが不要であるということはそれほど重要ではありません。そして、後で「apt-getautoremove」を実行することで簡単に「修正」できます。
これはバグではなく、aptの意思決定プロセスの結果だと思います。