59 votes

Est-ce que "sudo apt-get remove [write]" peut détruire mon Ubuntu ?

Je voulais supprimer mon application 'write', alors j'ai trouvé ça sur un site : Pour supprimer un type de paquet :

sudo apt-get remove [package_name]

Alors j'ai tapé :

sudo apt-get remove [write]

Et après, je me suis mis d'accord sur l'incitation : "Oui, fais ce que je dis !" ou quelque chose comme ça. Et voilà ! Mon Ubuntu s'effaçait ! Quelqu'un peut-il me dire pourquoi ?

91voto

dessert Points 36815

La commande correcte pour supprimer un paquet nommé write est :

sudo apt remove write

[write] est un jeu de caractères correspondant aux caractères "w", "r", "i", "t" et "e" et comme la correspondance se fait par sous-chaîne par apt . La commande que vous avez exécutée correspond donc tous les paquets contenant l'un de ces caractères qui sont bien sûr beaucoup . Je cite apt La production de l'entreprise ne comprend que les éléments essentiels :

WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt adduser (due to apt) gpgv (due to apt) ubuntu-keyring (due to apt) libapt-pkg5.0 (due to apt) libc6 (due to apt) libgcc1 (due to apt) libgnutls30 (due to apt) libseccomp2 (due to apt)
  libstdc++6 (due to apt) base-files base-passwd libdebconfclient0 (due to base-passwd) bash libtinfo5 (due to bash) debianutils (due to bash) bsdutils libsystemd0 (due to bsdutils) coreutils
  libacl1 (due to coreutils) libattr1 (due to coreutils) libselinux1 (due to coreutils) dash dpkg (due to dash) diffutils libbz2-1.0 (due to dpkg) liblzma5 (due to dpkg) libzstd1 (due to dpkg)
  zlib1g (due to dpkg) tar (due to dpkg) e2fsprogs libblkid1 (due to e2fsprogs) libcom-err2 (due to e2fsprogs) libext2fs2 (due to e2fsprogs) libss2 (due to e2fsprogs) libuuid1 (due to e2fsprogs) fdisk
  libfdisk1 (due to fdisk) libmount1 (due to fdisk) libncursesw5 (due to fdisk) libsmartcols1 (due to fdisk) findutils grep libpcre3 (due to grep) install-info (due to grep) gzip hostname init
  systemd-sysv (due to init) init-system-helpers (due to init) perl-base (due to init-system-helpers) libc-bin login libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login)
  libpam-modules (due to login) mount util-linux (due to mount) ncurses-base ncurses-bin sed sysvinit-utils libudev1 (due to util-linux)
0 upgraded, 0 newly installed, 2503 to remove and 0 not upgraded.
After this operation, 7238 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'

Les multiples avertissements ainsi que la nécessité de taper littéralement

Oui, fais ce que je dis !

des moyens de sécurité sont en place pour vous empêcher de détruire votre système, comme le gestionnaire de paquets du système apt est parfaitement capable de le faire. Toute commande exécutée avec sudo doit être exécuté avec soin et réflexion, mais ne vous inquiétez pas : presque tous les utilisateurs expérimentés d'Ubuntu ont cassé leur système au moins une fois, en fait, cela fait partie du plaisir si vous voulez mon avis.

Autres lectures

15voto

EFraim Points 101

Pour compléter ce que d'autres personnes ont dit, vous verrez assez souvent la syntaxe que le blogueur a utilisée dans son article.

Il existe des normes assez cohérentes qui sont utilisées lors de la rédaction de la documentation sur l'utilisation des commandes. Dans chaque page de manuel, vous trouverez à peu près la même structure.

Si quelque chose est en option il est généralement entre parenthèses. ls [folder] (vous n'avez pas besoin de donner un dossier à ls, mais vous pouvez le faire. Donc, facultatif).

Si quelque chose est un fichier o e-mail vous le verrez généralement entre crochets. <likeThis.php>

Si vous avez un choix entre un nombre fini de choses (i.e. Mois), vous le verrez entre accolades comme ceci : {September,October,November,December}

Avec l'un d'entre eux, vous pouvez voir ... qui indique qu'un multiple de cette valeur peut être donné.

Enfin, si un élément est absolument obligatoire, sa documentation sera indiquée et probablement soulignée. Par exemple, man mv le manuel du MV, dit ceci :

mv [OPTION]... [-T] SOURCE DEST

Techniquement parlant, le nom du paquet (write) n'est pas une partie obligatoire de la commande. Essayez-le. apt-get install o apt-get remove va juste exécuter et quitter le programme avec succès. C'est une des raisons pour lesquelles il a pu être présenté entre parenthèses sur ce blog.

9voto

WinEunuuchs2Unix Points 91128

Avant de faire un sudo apt-get il est judicieux de procéder à une simulation :

$ apt-get remove [write] -s | wc -l
65280

Il y a près de 65,280 les paquets qui peuvent être retirés wenn installé sur votre système. [write] est un modèle de recherche pour Correspondance Regex ce qui fait que chaque paquet est sélectionné s'il contient :

  • La lettre w o r o i o t o e

La sortie est acheminée vers le Nombre de mots avec | wc -l . Lignes de sortie de apt-get sont supprimées par wc . Le site -l L'interrupteur indique wc pour n'imprimer que le nombre de lignes et non le nombre de mots ou de caractères.

Simulation est spécifié avec l'option -s drapeau. Vous pouvez également utiliser l'option --simulate pour une meilleure lisibilité. Un autre avantage d'une simulation est que vous n'avez pas besoin de sudo des pouvoirs qui, comme beaucoup d'entre nous l'ont appris, peuvent parfois être dangereux.

Pour avoir une idée des noms de paquets impliqués, envoyez la sortie vers le fichier less Befehl:

$ apt-get remove [write] --simulate | less

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Also keep in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists...
Building dependency tree...
Reading state information...
Package 'libpam-pin' is not installed, so not removed
Package 'activity-log-manager-common' is not installed, so not removed
Package 'libnet-patricial-perl' is not installed, so not removed
Package 'pe' is not installed, so not removed

   (.... Plus 65,269 more packages ....)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X