Nel tentativo di saperne di più su Ubuntu e sui suoi pacchetti, voglio rimuovere tutti i pacchetti non essenziali, così posso installare ciò di cui ho bisogno, quando ne ho bisogno e sapere cosa fanno.
Sto usando i comandi dpkg --clear-selections
e apt-get dselect-upgrade
per questo. Inoltre modifico leggermente la selezione impostando apt libstdc++6 (due to apt) install-info (due to grep)
per installare di nuovo (in qualche modo dpkg pensa che non siano essenziali, ma apt-get si lamenta).
Va bene o va male? Se va bene, cosa devo fare con l'ampio elenco di pacchetti con stato "disinstalla" in dpkg?
Una nota aggiuntiva, lo sto facendo su un modello VPS, quindi non ho alcun controllo sui pacchetti installati inizialmente.
Migliore risposta
Con il seguente comando è possibile ottenere un elenco dei pacchetti installati, classificati per priorità:
dpkg-query -Wf '${Package;-40}${Priority}n' | sort -b -k2,2 -k1,1
Una descrizione delle priorità è fornita nel Debian Policy Manual.
Nella mia installazione ottengo quanto segue (mostra solo richiesto , importante e standard pacchetti):
apt important
aptitude important
apt-utils important
bsdmainutils important
cron important
debconf-i18n important
dmidecode important
gnupg important
gpgv important
groff-base important
info important
install-info important
iptables important
iputils-ping important
isc-dhcp-client important
isc-dhcp-common important
libapt-inst1.3 important
libapt-pkg4.11 important
libboost-iostreams1.46.1 important
libcwidget3 important
libept1 important
libgdbm3 important
libgdbm3 important
libgudev-1.0-0 important
libnewt0.52 important
libpcre3 important
libpipeline1 important
libpopt0 important
libreadline6 important
libssl1.0.0 important
libsysfs2 important
libusb-0.1-4 important
libxapian22 important
logrotate important
man-db important
manpages important
medibuntu-keyring important
nano important
netbase important
net-tools important
python important
readline-common important
rsyslog important
ubuntu-extras-keyring important
ubuntu-keyring important
vim-common important
vim-tiny important
wget important
whiptail important
adduser required
base-files required
base-passwd required
bash required
bsdutils required
busybox-initramfs required
coreutils required
cpio required
dash required
debconf required
debianutils required
diffutils required
dpkg required
e2fslibs required
e2fsprogs required
findutils required
gcc-4.6-base required
gcc-4.6-base required
grep required
gzip required
hostname required
ifupdown required
initscripts required
insserv required
iproute required
klibc-utils required
libacl1 required
libacl1 required
libattr1 required
libattr1 required
libblkid1 required
libbz2-1.0 required
libc6 required
libc6 required
libc-bin required
libcomerr2 required
libcomerr2 required
libdb5.1 required
libdbus-1-3 required
libdevmapper1.02.1 required
libdrm2 required
libdrm-intel1 required
libdrm-nouveau1a required
libdrm-radeon1 required
libffi6 required
libgcc1 required
libgcc1 required
libglib2.0-0 required
libklibc required
liblocale-gettext-perl required
liblzma2 required
libmount1 required
libncurses5 required
libncursesw5 required
libnih1 required
libnih-dbus1 required
libpam0g required
libpam-modules required
libpam-modules-bin required
libpam-runtime required
libpciaccess0 required
libpcre3 required
libplymouth2 required
libpng12-0 required
libselinux1 required
libselinux1 required
libslang2 required
libss2 required
libssl1.0.0 required
libstdc++6 required
libstdc++6 required
libtext-charwidth-perl required
libtext-iconv-perl required
libtext-wrapi18n-perl required
libtinfo5 required
libudev0 required
libuuid1 required
libuuid1 required
locales required
login required
lsb-base required
lzma required
makedev required
mawk required
module-init-tools required
mount required
mountall required
multiarch-support required
ncurses-base required
ncurses-bin required
passwd required
perl-base required
plymouth required
procps required
python2.7-minimal required
python-minimal required
sed required
sensible-utils required
sysvinit-utils required
sysv-rc required
tar required
tzdata required
udev required
upstart required
ureadahead required
util-linux required
xz-utils required
zlib1g required
zlib1g required
at standard
bash-completion standard
bc standard
bind9-host standard
dc standard
dnsutils standard
file standard
ftp standard
gettext-base standard
less standard
libbind9-60 standard
libcap2 standard
libdb5.1 standard
libdns69 standard
libedit2 standard
libevent-2.0-5 standard
libgc1c2 standard
libgcrypt11 standard
libgcrypt11 standard
libgnutls26 standard
libgnutls26 standard
libgpg-error0 standard
libgpg-error0 standard
libgpm2 standard
libgssapi-krb5-2 standard
libgssapi-krb5-2 standard
libidn11 standard
libidn11 standard
libisc62 standard
libk5crypto3 standard
libk5crypto3 standard
libkeyutils1 standard
libkeyutils1 standard
libkrb5-3 standard
libkrb5-3 standard
libkrb5support0 standard
libkrb5support0 standard
libldap-2.4-2 standard
libldap-2.4-2 standard
liblockfile1 standard
liblwres60 standard
libmagic1 standard
libpci3 standard
libsasl2-2 standard
libsasl2-2 standard
libsqlite3-0 standard
libsqlite3-0 standard
libtasn1-3 standard
libtasn1-3 standard
libxml2 standard
lsof standard
m4 standard
make standard
mime-support standard
mlocate standard
openssh-client standard
patch standard
pciutils standard
perl standard
perl-modules standard
python-apt standard
python-central standard
telnet standard
time standard
ucf standard
wamerican standard
whois standard
Il Sistema Base è definito come un sistema che contiene solo richiesto e importante pacchetti.
Correlati:come uccidere il processo che "sudo kill -9" non può uccidere senza riavviare?Pacchetti contrassegnati come standard non sono strettamente necessari per un sistema funzionante, ma puoi metterti in difficoltà se ti mancano.
Quindi, per rimuovere tutti i pacchetti non necessari (opzionale e extra ), puoi eseguire il seguente comando:
sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}n' |
awk '$2 ~ /optional|extra/ { print $1 }')
Ho aggiunto il --simulate
opzione per essere al sicuro e vedere cosa apt
dice.
Stranamente, chiede di rimuovere anche alcuni pacchetti richiesti:e2fsprogs
, util-linux
, hostname
e upstart
, quindi è necessario reinstallare questi pacchetti. Scaricherei i pacchetti in anticipo (apt-get download <packages>
), per evitare problemi di rete dopo.
Tieni inoltre presente che per un Wifi funzionante potresti aver bisogno di alcuni opzionali o extra pacchetto, rimosso nella procedura precedente.