у меня был открыт rpc.statd на порту 111 при относительно свежей установке debian squeeze. я сделал карту порта очистки apt-get, так как хотел отключить службы rpc и закрыть открытый порт на своем компьютере; мне подарили следующее:
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
Короче говоря, я смог удалить portmap без установки дополнительных пакетов, сначала выполнив apt-get purge nfs-common, а затем apt-get purge portmap.
кто-нибудь может объяснить такое поведение? почему apt-get пытается установить rpcbind и libtirpc1 при попытке очистить карту портов в первом случае, но не во втором? из приведенных выше выходных данных ясно, что apt-get для начала предназначен для удаления nfs-common вместе с portmap. единственная важная деталь, которую я смог найти, это то, что fam зависит от portmap, но это удаленный сервер, и fam и графический интерфейс не нужны. это ошибка или я что-то упускаю? если да, то кому должен быть адресован отчет?
APT разработан, чтобы не оставлять вас сломанной системой. Он не знает, что вы используете сервер и не нуждаетесь в том или ином пакете.
Вы увидите подобное поведение при попытке удалить пакет, если какой-либо другой пакет зависит от того, что вы пытаетесь удалить, но вместо этого можно использовать другой пакет. Когда вы пытаетесь удалить пакет, это зависит от того, APT предложит установить альтернативу.
Вы будете часто видеть это, если попытаетесь очистить агент передачи почты (почтовый сервер). Существует большое количество программ, которым требуется MTA, поэтому, когда вы пытаетесь очистить exim или postfix, будет установлена другая.
Просто сделайте следующее в / etc / default / portmap, чтобы остановить 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
Но затем он также замечает, что в rpcbind больше нет необходимости, потому что nfs-common также будет удален. Из вашего вывода:
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.
Т.е. правило: удаляем portmap, затем устанавливаем rpcbind
Имеет большее значение, чем правило: nfs-common удален, поэтому мне не нужен rpcbind
Первое правило можно проверить, еще не зная об удалении nfs-common. Менее важно, что пакет больше не нужен, чем то, что зависимость была нарушена. И это легко «исправить», запустив впоследствии команду «apt-get autoremove».
Я не думаю, что это ошибка, просто результат процесса принятия решения apt.