LINUX.ORG.RU
ФорумAdmin

apt-get autoremove сломан

 


0

2

Предположим, я захотел скомпилировать какой-то софт и понаставил себе всяких libfoo-dev, libbar-dev, libbaz-dev и сотню других. Спустя N времени я решаю сделать apt-get autoremove и вижу, что он не удаляет libfoo-dev. Почему он этого не делает? А фиг знает, я уже давным давно забыл что ставил ее, а сейчас об этом узнать уже негде.

У apt-get нет педали «а теперь дай мне список всех пакетов, которые сейчас установлены потому что я/установщик системы так когда-то сказал, а не потому, что они чьи-то зависимости».

Ну и соответственно обратные проблемы, когда apt-get autoremove неожиданно хочет удалить что-то важное. Он это хочет сделать потому, что это что-то перестало быть зависимостью заказанного юзером пакета. Ситуация еще более усугублена тем, что нет *отдельного* списка пакетов, которые установлены потому, что являются необходимыми для базовой системы, что порождает ситуации «в системе уже был пакет X (о чем я не знал), я заказал установку X, спустя полгода заказал удаление X, autoremove, упс».

И самое неочевидное состоит в том, что когда apt-get install говорит что пакет уже установлен, он на самом деле кое-что делает еще. Он помечает этот пакет как «пакет, который установлен потому что его попросил пользователь». Но нет легкого способа убрать эту пометку, не удалив пакет, как и нет простого способа увидеть список таких пакетов.

Вот. Если все-равно непонятно, могу наделать примеров.

У apt-get нет педали «а теперь дай мне список всех пакетов, которые сейчас установлены потому что я/установщик системы так когда-то сказал, а не потому, что они чьи-то зависимости».

sudo dpkg -l | grep имя_пакета
Silencer ()
Ответ на: комментарий от Silencer

И как вы по выхлопу dpkg -l отличите что установлено как зависимость, а что нет?

slonopotamus ()

понаставил себе всяких libfoo-dev, libbar-dev, libbaz-dev и сотню других

Вручную? Если да, то всё логично. Если через build-dep - то тут есть, о чём поговорить.

Deleted ()

У apt-get нет педали «а теперь дай мне список всех пакетов, которые сейчас установлены потому что я/установщик системы так когда-то сказал, а не потому, что они чьи-то зависимости».

4.2, тред по снос.

t184256 ★★★★★ ()
Ответ на: комментарий от thesis

Голый дебиан (netinstall, без иксов):

$ apt-mark showmanual
acl
acpi
acpi-support-base
acpid
adduser
apt
apt-listchanges
apt-utils
aptitude
aptitude-common
at
base-files
base-passwd
bash
bash-completion
bc
bind9-host
bsd-mailx
bsdmainutils
bsdutils
busybox
bzip2
console-setup
coreutils
cpio
cron
dash
dbus
dc
debconf
debconf-i18n
debian-archive-keyring
debian-faq
debianutils
diffutils
discover
dmidecode
dmsetup
dnsutils
doc-debian
dpkg
e2fslibs
e2fsprogs
eject
exim4
exim4-base
exim4-config
exim4-daemon-light
file
findutils
ftp
gcc-4.8-base
gcc-4.9-base
gettext-base
gnupg
gpgv
grep
groff-base
grub-common
grub-pc
gzip
host
hostname
ifupdown
info
init
init-system-helpers
initramfs-tools
initscripts
insserv
install-info
installation-report
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
keyboard-configuration
kmod
krb5-locales
laptop-detect
less
libacl1
libapt-inst1.5
libapt-pkg4.12
libattr1
libaudit-common
libaudit1
libblkid1
libboost-iostreams1.55.0
libbz2-1.0
libc-bin
libc6
libcap2
libcap2-bin
libclass-isa-perl
libcomerr2
libcryptsetup4
libdb5.3
libdebconfclient0
libdevmapper1.02.1
libdns-export100
libestr0
libffi6
libgcc1
libgcrypt20
libgdbm3
libgmp10
libgnutls-deb0-28
libgnutls-openssl27
libgpg-error0
libhogweed2
libicu52
libidn11
libirs-export91
libisc-export95
libisccfg-export90
libjson-c2
libkmod2
liblocale-gettext-perl
liblockfile-bin
liblogging-stdlog0
liblognorm1
liblzma5
libmnl0
libmount1
libncurses5
libncursesw5
libnetfilter-acct1
libnettle4
libnewt0.52
libnfnetlink0
libp11-kit0
libpam-modules
libpam-modules-bin
libpam-runtime
libpam0g
libpcre3
libpipeline1
libpopt0
libprocps3
libpsl0
libreadline6
libselinux1
libsemanage-common
libsemanage1
libsepol1
libsigc++-2.0-0c2a
libslang2
libsmartcols1
libss2
libssl1.0.0
libstdc++6
libswitch-perl
libsystemd0
libtasn1-6
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libtinfo5
libudev1
libusb-0.1-4
libustr-1.0-1
libuuid1
libxtables10
linux-image-amd64
locales
login
logrotate
lsb-base
lsof
m4
man-db
manpages
mawk
mime-support
mlocate
mount
multiarch-support
mutt
nano
ncurses-base
ncurses-bin
ncurses-term
net-tools
netbase
netcat-traditional
nfacct
nfs-common
openssh-client
passwd
patch
pciutils
perl
perl-base
perl-modules
popularity-contest
procmail
procps
python
python-apt
python-minimal
python-reportbug
python-support
python2.7
readline-common
reportbug
rpcbind
rsyslog
sed
sensible-utils
startpar
systemd
systemd-sysv
sysv-rc
sysvinit-utils
tar
task-english
tasksel
tasksel-data
telnet
texinfo
time
traceroute
tzdata
ucf
udev
usbutils
util-linux
vim-common
vim-tiny
w3m
wamerican
wget
whiptail
whois
xz-utils
zlib1g


Это «список пакетов которые autoremove не удалит даже если на них нет зависимостей», но он никак не объясняет по какой причине в нем эти пакеты находятся - просил ли их установить я или они необходимы для функционирования системы, или и то и другое одновременно.

slonopotamus ()
Ответ на: комментарий от slonopotamus

Он показывает то, что было установлено тобой или установщиком, а не прилетело по зависимостям. Такие пакеты отмечаются меткой manual.

Falcon-peregrinus ★★★★★ ()
Последнее исправление: Falcon-peregrinus (всего исправлений: 2)
Ответ на: комментарий от Falcon-peregrinus

Повторяю: по нему невозможно отличить, мной это установлено (и тогда я могу спокойно пакет сносить) или он нужен системе и тогда его сносить нельзя.

Плюс, некоторый WTF вызывает наличие в этом списке либ, например libicu52. Сами по себе либы явно системе не нужны, только как зависимости конечных приложений. Так почему они в этом списке?

slonopotamus ()
Ответ на: комментарий от slonopotamus

Повторяю: по нему невозможно отличить, мной это установлено (и тогда я могу спокойно пакет сносить) или он нужен системе и тогда его сносить нельзя.

Действительно, то что нельзя увидеть, что установлено по прямому указу пользователя довольно не удобно.

torvn77 ★★★★★ ()
Ответ на: комментарий от torvn77

Хотя вот посмотрел на вывод и начал кой чего припоминать.
Эх, чего я только на своём компе не делал, надо будет isc-dhcp снести к чёртовой бабушке.

torvn77 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.