'Sudo apt-get remove [write]' Ubuntu'umu mahvedebilir mi?


59

'Yazma' uygulamamı kaldırmak istedim, bu yüzden bunu bir sitede buldum: Bir paket türünü kaldırmak için:

sudo apt-get remove [package_name]

Ben de yazdım:

sudo apt-get remove [write]

Daha sonra istemi kabul ettim: 'Evet, dediğimi yap!' ya da böyle bir şey. Ve işte! Ubuntu'm silindi! Biri bana nedenini söyleyebilir mi?


29
Tüm çıktının okunması hakkında öğretilebilir bir an. Birçoğumuz bir kez benzer bir şey yaptık.
user535733

7
Ne olacağından emin değilseniz iyi bir ipucu, bayrağı --simulateveya -saltında aptveya apt-getilkini kullanmaktır - Örnek: sudo apt -s remove php7.2-pspellaslında bunu kaldırmaz. Sadece neyin kaldırılacağını / etkileneceğini (varsa) gösterir. 'İnstall' için aynı.
bshea

touch wilk önce kendine biraz üzüntü ;-) kaydet.
Stephen Kitt

@ B.Tanner Cevabımın sadece kutuplaşmak yerine işe yarayacağını duyduğuma sevindim. Başka (veya başka) sorularınız varsa veya sadece merhaba demek istemeniz durumunda AU genel sohbet odasında her zaman beklersiniz!
tatlı

Ayrıca man sayfalarındaki gösterim kuralları hakkında iyi bir ders.
chrylis -on grev-

Yanıtlar:


92

Adında bir paketi kaldırmak için doğru komut writeşudur:

sudo apt remove write

[write]“w”, “r”, “i”, “t” ve “e” karakterleriyle eşleşen ve eşleştirme, altyazı tarafından yapılan bir karakter kümesidir apt. Böylece koştuğunuz komut, tüm paketleri içinde bu karakterlerden biriyle eşleştirdi , tabii ki hangisi çok fazla . aptÇıktı listesinin sadece temel olanlarını alıntılamak için :

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!'

Kelimenin tam anlamıyla yazmanız gerekmesinin yanı sıra çoklu uyarılar

Evet, dediğimi yap!

Sistemin paket yöneticisi aptmükemmel bir şekilde bunu yapabildiğinden, sizi sisteminizi tahrip etmekten alıkoyacak bir güvenlik aracıdır . Yürütülecek herhangi bir komut sudodikkatlice ve dikkatlice çalıştırılmalıdır, ancak endişelenmeyin: Ubuntu'nun neredeyse tüm deneyimli kullanıcıları sistemlerini en az bir kez kırdı, aslında bana sorarsanız bu eğlencenin bir parçası.

daha fazla okuma


1
Yorumlar genişletilmiş tartışmalar için değildir; bu konuşma sohbete taşındı .
Thomas Ward

15

Başkalarının söylediklerini eklemek için, blog yazarının yayınlarında oldukça sık kullandığı sözdizimini görürsünüz.

Komutların nasıl kullanılacağına dair dökümantasyon yazarken kullanılan tutarlı standartlar vardır. Her manuel sayfada hemen hemen aynı yapı göreceksiniz.

Bir şey isteğe bağlıysa , genellikle parantez içindedir. ls [folder](ls'e bir klasör vermene gerek yok, ama yapabilirsin. Böylece isteğe bağlı).

Bir şey bir dosya veya e-posta ise , genellikle açılı ayraçlar içinde görürsünüz.<likeThis.php>

Sınırlı sayıda şey arasında seçim yapma şansınız varsa (yani Aylar), bunu aşağıdaki gibi parantez içinde görürsünüz:{September,October,November,December}

Bunlardan herhangi birinde, bunlardan ...çoğunun verilebileceğini kimlerin gördüğünü görebilirsiniz .

Ve son olarak, eğer bir şey kesinlikle zorunluysa, belgelerinin listelenmiş ve muhtemelen altı çizili olduğunu göreceksiniz. Örneğin man mv, mv'nin el kitabı, şunu söylüyor:

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

Teknik olarak konuşursak, paket adı (yazma) komutun gerekli bir parçası değildir. Dene. apt-get installveya apt-get removesadece programdan başarıyla çalıştırılıp çıkacaktır. Bu, blogda parantez içinde sunulmasının bir nedeni.


9

Bir yapmadan önce sudo apt-get, bir simülasyon yapmak akıllıca olacaktır:

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

Yaklaşık vardır 65.280 kaldırılması için hak paketler halinde sisteminizde yüklü. Regex eşleşmesi için, eğer varsa, her paketin seçilmesine neden [write]olan bir arama düzenidir :

  • Mektup wveya rveya iveya tveyae

Çıkış, ile birlikte Word Count komutuna yönlendirilir | wc -l. Çıkış hatları apt-getbastırılır wc. -lAnahtar talimatını wcyalnızca yazdırma hatlarının sayısı ve olmayan kelime sayısı veya karakter sayısı için.

Simülasyon-s bayrakla belirtilir . --simulateBayrağı daha iyi okunabilirlik için de kullanabilirsiniz . Bir simülasyonun diğer bir avantajı, sudoçoğumuzun bazen tehlikeli olabileceği öğrenilen güçlere ihtiyaç duymamanızdır.

Boru çıktısının dahil olduğu paket isimleri hakkında daha fazla bilgi edinmek için less:

$ 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 ....)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.