Pour tenter d'en savoir plus sur Ubuntu et ses packages, je souhaite supprimer tous les packages non essentiels, afin de pouvoir installer ce dont j'ai besoin, quand j'en ai besoin et savoir ce qu'ils font.
J'utilise les commandes dpkg --clear-selections
et apt-get dselect-upgrade
pour ça. Je modifie également légèrement la sélection en définissant apt libstdc++6 (due to apt) install-info (due to grep)
pour installer encore une fois (dpkg pense qu'ils ne sont pas essentiels, mais apt-get se plaint).
Est-ce bien, ou est-ce mauvais ? Si tout va bien, que dois-je faire avec la longue liste de paquets avec le statut "désinstaller" dans dpkg ?
Une note supplémentaire, je fais cela sur un modèle VPS donc je n'ai aucun contrôle sur les packages initialement installés.
Meilleure réponse
Avec la commande suivante, vous pouvez obtenir une liste des packages installés, classés par priorité :
dpkg-query -Wf '${Package;-40}${Priority}n' | sort -b -k2,2 -k1,1
Une description des priorités est donnée dans le Debian Policy Manual.
Dans mon installation, j'obtiens ce qui suit (je n'affiche que les éléments obligatoires , important et standard paquets):
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
Le système de base est défini comme un système contenant uniquement les éléments requis et important colis.
En relation:Comment tuer le processus que 'sudo kill -9' ne peut pas tuer sans redémarrage ?Forfaits marqués comme standard ne sont pas strictement nécessaires pour un système fonctionnel, mais vous pouvez avoir des difficultés si vous les manquez.
Donc, pour supprimer tous les packages inutiles (facultatif et extra ), vous pouvez exécuter la commande suivante :
sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}n' |
awk '$2 ~ /optional|extra/ { print $1 }')
J'ai ajouté le --simulate
option pour être en sécurité et voir ce que apt
dit.
Étrangement, il demande de supprimer également certains packages requis :e2fsprogs
, util-linux
, hostname
et upstart
, il est donc nécessaire de réinstaller ces packages. Je téléchargerais les packages à l'avance (apt-get download <packages>
), pour éviter les problèmes de réseau par la suite.
Tenez également compte du fait que pour un Wi-Fi fonctionnel, vous pouvez avoir besoin de certains éléments facultatifs ou supplément package, supprimé dans la procédure ci-dessus.