Puncte:-1

Rularea „sudo apt purge python” duce la blocarea totală a sistemului

drapel fr

De ce mă confrunt cu o prăbușire totală a Ubuntu Focal Fossa 20.04 LTS, dacă rulez următoarea comandă?

sudo apt purge python*

Nu primesc nicio alertă de la apt despre acea acțiune înainte de a începe procesul!

Cum pot evita această problemă software precară și cum pot fi pregătit în viitor pentru cazuri ca acesta?

user535733 avatar
drapel cn
Apt nu a fost programat de părinții noștri grijulii; dacă îi spunem lui apt să facă ceva prostesc, *apt o va face!* Tu ești persoana responsabilă. Dacă utilizați metacaractere pentru a ghici ce ar fi eliminat și dacă nu vă citiți rezultatul înainte de a fi de acord, aceasta vă revine. Oamenii care au fost mușcați petrec un minut pentru a-și enumera pachetele, în loc să aibă încredere în wildcards. Oamenii care au fost mușcați citesc cu atenție și înțeleg rezultatul lor adecvat *de fiecare dată* înainte de a fi de acord cu acțiunea propusă.
kanehekili avatar
drapel zw
Dacă te-ai fi uitat aici **ÎNAINTE** de a face asta, te-ar fi economisit ceva timp și bătăi de cap. Despre cel mai rău lucru pe care l-ai putea face. Vezi [un răspuns vechi](https://askubuntu.com/a/1319899/906933) aici. Ai fost avertizat!
terdon avatar
drapel cn
@kanehekili niciunul dintre noi nu s-a născut știind aceste lucruri. OP are deja destulă durere cu sistemul lor, nu este nevoie să se bucure sau să-l freci.
kanehekili avatar
drapel zw
@terdon - da ai dreptate si imi cer scuze. Dar în ultimul timp am editat o mulțime de întrebări la care s-a răspuns deja - se simte inflaționist...
Puncte:5
drapel ca

De ce mă confrunt cu o prăbușire totală a Ubuntu Focal Fossa 20.04 LTS, dacă rulez următoarea comandă?

sudo apt purge python*

Python este o componentă de bază a Ubuntu și, ca atare, Ubuntu depinde foarte mult de el. Eliminarea acestuia duce la o prăbușire completă a sistemului, așa cum ați fost martor. În timp ce ar putea exista moduri de fixare Ubuntu după întreruperea instalării Python, cea mai bună opțiune este reinstalarea completă a sistemului.


Nu primesc nicio alertă de la apt despre acea acțiune înainte de a începe procesul!

Nu sunt sigur că apt nu te-a avertizat cu privire la eliminarea mai multor pachete. Rularea unei simulări de purjare python3 din sistemul meu (folosind aptlui -s steag – vezi om apt), returnează următoarele:

$ apt -s purge python3
NOTĂ: Aceasta este doar o simulare!
      apt are nevoie de privilegii root pentru execuția reală.
      De asemenea, rețineți că blocarea este dezactivată,
      deci nu depinde de relevanța față de situația actuală reală!
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Următoarele pachete au fost instalate automat și nu mai sunt necesare:
  apg apport-symptoms aptdaemon-data avahi-utils cups-pk-helper dc dconf-cli dctrl-tools distro-info distro-info-data docbook-xml evolution-data-server evolution-data-server-fonturi comune-cantarell fprintd
  geoip-database gir1.2-accountsservice-1.0 gir1.2-atspi-2.0 gir1.2-clutter-1.0 gir1.2-clutter-gst-3.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2 -dbusmenu-glib-0.4 gir1.2-dee-1.0 gir1.2-gck-1 gir1.2-gcr-3
  gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-goa-1.0 gir1.2-graphene-1.0 gir1.2-gtkclutter-1.0 gir1.2-gtksource-3.0 gir1. .2-gweather-3.0 gir1.2-handy-0.0 gir1.2-ibus-1.0 gir1.2-json-1.0
  gir1.2-keybinder-3.0 gir1.2-mutter-6 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-notify-0.7 gir1.2-packagekitglib-1.0 gir1.2-polkit-1.0 gir1 .2-rsvg-2.0 gir1.2-secret-1 gir1.2-snapd-1 gir1.2-unity-5.0
  gir1.2-upowerglib-1.0 gir1.2-vte-2.91 gkbd-capplet gnome-control-center-faces gnome-session-bin gnome-session-common gnome-shell-common gnome-startup-applications ibus-data ippusbxd libarchive- unelte
  libatomic1:i386 libboost-python1.71.0 libbsd0:i386 libcamel-1.2-62 libchromaprint-tools libcolord-gtk1 libdiscid0 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveaud6: libdrm-nouveaud6: libdrm-nouveaud3:
  libebackend-1.2-10 libebook-1.2-20 libebook-contacts-1.2-3 libecal-2.0-1 libedata-book-1.2-26 libedata-cal-2.0-1 libedataserver-1.2-24 libedataserverui-1.2-2 libedit2:f138 :i386 libetonyek-0.1-1
  libexpat1:i386 libexpat1-dev libffi7:i386 libfluidsynth2 libfprint-2-2 libgdata-common libgdata22 libgeoip1 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd08: libglvnd0:i386 libglvnd0:i386
  libgnomekbd-common libgnomekbd8 libgsoap-2.8.91 libgssdp-1.2-0 libgupnp-1.2-0 libgupnp-av-1.0-2 libgupnp-dlna-2.0-3 libhpmud0 libimagequant0 libinstpatch-1.0 libinstpatch-jurtja libjpeg-jurt-1.0 java
  libkeybinder-3.0-0 libldb2 libllvm12:i386 liblzf1 libmediaart-2.0-0 libmikmod3 libmodplug1 libmspub-0.1-1 libmtp-common libmtp-runtime libmtp9 libmutter-6-0 libmwaw-0.3-n3 libnet130
  libnvidia-cfg1-450-server libnvidia-common-450-server libnvidia-compute-450-server:i386 libnvidia-decode-450-server libnvidia-decode-450-server:i386 libnvidia-encode-450-server
  libnvidia-encode-450-server:i386 libnvidia-extra-450-server libnvidia-fbc1-450-server libnvidia-fbc1-450-server:i386 libnvidia-gl-450-server libnvidia-gl-450-server: libnvidia-gl-450-server: ifr1-450-server
  libnvidia-ifr1-450-server:i386 liborcus-0.15-0 libpam-fprintd libpciaccess0:i386 libphonenumber7 libportmidi0 libprotobuf17 libpython3-dev libpython3-stdlib libpython3.8-dev libqt5designer5
  libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediawidgets5 libqt5opengl5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libqt5xml5 libreoffice-style-tango libridl-java
  librygel-core-2.6-2 librygel-db-2.6-2 librygel-renderer-2.6-2 librygel-server-2.6-2 libsane-hpaio libsdl-image1.2 libsdl-mixer1.2 libsdl-ttf2.0-0 libsdl1. 2debian libsensors5:i386 libstdc++6:i386 libtalloc2
  libtevent0 libtorrent-rasterbar9 libunoil-java libutempter0 libva-wayland2 libvncserver1 libvte-2.91-0 libvte-2.91-common libvulkan1:i386 libwayland-client0:i386 libwbclient0 libwhoopsie-preferences0
  libwps-0.4-4 libx11-6:i386 libx11-xcb1:i386 libxatracker2 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb3-8b0 libxcb3-8b0 res0 libxcb-shm0:i386
  libxcb-sync1:i386 libxcb-xfixes0:i386 libxcb-xv0 libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxfont2 libxklavier16 libxnvctrf61 libxnvctrf61 libxnvctrl81: libxnvctrl80:
  linux-headers-5.4.0-26 linux-headers-5.4.0-26-generic linux-headers-5.8.0-63-generic linux-hwe-5.8-headers-5.8.0-63 mesa-vulkan-drivers: i386 mobile-broadband-furnider-info mscompress mutter murmur-obișnuit
  network-manager-gnome nvidia-compute-utils-450-server nvidia-kernel-common-450-server nvidia-kernel-source-450-server nvidia-utils-450-server plymouth-label policykit-1-gnome driver de imprimantă -hpcups
  python-apt-common python-pip-whl python3-minimal python3.8 python3.8-dev python3.8-minimal rygel sgml-base sgml-data switcheroo-control timgm6mb-soundfont whoopsie-preferences-xutilksbs-x11-x11 -utiluri
  xbrlapi xfonts-base xfonts-encodings xfonts-scalable xfonts-utils xinit xinput xml-core xserver-common xserver-xephyr xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-libinput
  xserver-xorg-input-wacom xserver-xorg-legacy xserver-xorg-video-all xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg -video-nouveau
  xserver-xorg-video-nvidia-450-server xserver-xorg-video-qxl xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware xterm xwayland yelp-xsl zlib1g-dev
Utilizați „apt autoremove” pentru a le elimina.
Următoarele pachete suplimentare vor fi instalate:
  policykit-1-gnome
Următoarele pachete vor fi ȘTERSE:
  apparmor* apport* apport-gtk* aptdaemon* apturl* apturl-common* autokey-common* autokey-gtk* celluloid* chrome-gnome-shell* command-not-found* deluge* deluge-common* deluge-gtk* dkms* exfalso* firefox*
  foomatic-db-compressed-ppds* gdm3* gnome-control-center* gnome-getting-started-docs* gnome-getting-started-docs-el* gnome-menus* gnome-online-accounts* gnome-session* gnome- coajă*
  gnome-shell-extension-appindicator* gnome-shell-extension-desktop-icones* gnome-shell-extension-prefs* gnome-shell-extension-ubuntu-dock* gnome-tweaks* gnome-user-docs* gnome-user- docs-el* gufw* gvfs-backends*
  hplip* hplip-data* ibus* ibus-table* imgsizer* language-selector-common* language-selector-gnome* libmpv1* libsmbclient* lsb-release* mpv* nautilus-share* netplan.io* networkd-dispatcher*
  nvidia-dkms-450-server* nvidia-driver-450-server* nvidia-prime* nvidia-settings* openprinting-ppds* orca* picard* plymouth-theme-spinner* plymouth-theme-ubuntu-text* driver-printer- foo2zjs*
  driver de imprimantă-foo2zjs-common* driver de imprimantă-m2300w* driver de imprimantă-postscript-hp* driver de imprimantă-ptouch* driver de imprimantă-pxljr* driver de imprimantă-sag-gdi* python3* python3-appdirs* python3- apport* python3-apt*
  python3-aptdaemon* python3-aptdaemon.gtk3widgets* python3-attr* python3-automat* python3-babelfish* python3-blinker* python3-brlapi* python3-bs4* python3-bs4* python3-cfonfithon3*cfonfithon-backend3*cfon-fion3
  python3-chardet* python3-click* python3-colorama* python3-commandnotfound* python3-constantly* python3-cryptography* python3-cups* python3-cupshelpers* python3-dateutil* pythonpython3-d*deb
  python3-debian* python3-decorator* python3-defer* python3-dev* python3-distro* python3-distro-info* python3-distupgrade* python3-distutils* python3-dogpile.cache* python3-enzy* python3*enzy
  python3-feedparser* python3-gdbm* python3-geoip* python3-gi* python3-gi-cairo* python3-greenlet* python3-guessit* python3-hamcrest* python3-html5lib* python3-html5lib* python3-thon3-thon3-hpthon3-hpthon3 1,0*
  python3-idna* python3-incremental* python3-jwt* python3-keyring* python3-launchpadlib* python3-lazr.restfulclient* python3-lazr.uri* python3-lib2to3* python3-lib2to3* python3-lib2to3* python3-lib2to3*lib2-lib2-lib2*lib3-lib2-lib2*
  python3-lxml* python3-macaroonbakery* python3-mako* python3-markupsafe* python3-msgpack* python3-musicbrainzngs* python3-mutagen* python3-nacl* python3-neovpythonpy*3-numpy*3*
  python3-oauthlib* python3-olefile* python3-openssl* python3-pbr* python3-pexpect* python3-pil* python3-pip* python3-pkg-resources* python3-problem-report* python3-pexpect* python3-pip* python3-pkg-resources* pyasn1*
  python3-pyasn1-modules* python3-pyatspi* python3-pygame* python3-pyinotify* python3-pymacaroons* python3-pynvim* python3-pyqt5* python3-pyqrart5.qrtthmultimedia*3-pymacaroons* python3-pynvim*
  python3-rencode* python3-renderpm* python3-reportlab* python3-reportlab-accel* python3-requests* python3-requests-unixsocket* python3-rfc3339* python3-secretstorage-service-identity*3
  python3-setproctitle* python3-setuptools* python3-simplejson* python3-sip* python3-six* python3-software-properties* python3-soupsieve* python3-speechd* python3-stevedore-system*sublimthon3*
  python3-talloc* python3-toposort* python3-twisted* python3-twisted-bin* python3-tz* python3-uno* python3-update-manager* python3-urllib3* python3-wadllib* python3-wadllib* python3-wdllib* pythondings-whel3-python3 xdg*
  python3-xkit* python3-xlib* python3-yaml* python3-zope.interface* quodlibet* ranger* samba-libs* screen-resolution-extra* snapd* software-properties-common* software-properties-gtk* subliminal*
  system-config-printer* system-config-printer-common* system-config-printer-udev* ubuntu-advantage-tools* ubuntu-desktop* ubuntu-desktop-minimal* ubuntu-docs* ubuntu-drivers-common* ubuntu- minim*
  ubuntu-release-upgrader-core* ubuntu-release-upgrader-gtk* ubuntu-session* ubuntu-standard* ufw* upgrade-uri nesupravegheate* update-manager* update-manager-core* update-notifier* update-notifier-common* virtualbox*
  virtualbox-dkms* virtualbox-qt* xorg* xserver-xorg* yelp*

Evident, acestea sunt mult de pachete care depind de python3 și sunt eliminate și puteți vedea multe dintre ele esențiale. Când ai fugit sudo apt purge python*, presupun că vi s-a arătat o ieșire similară înainte de a confirma eliminarea pachetelor. Asa de apt a nu te alerta nu este în întregime adevărat.


Cum pot evita această problemă software precară și cum pot fi pregătit în viitor pentru cazuri ca acesta?

  1. Nu eliminați instalarea implicită Python! Dacă aveți nevoie de o versiune Python, alta decât cea care vine preinstalată, vă sfătuiesc cu insistență să utilizați un mediu virtual pentru a o instala. Puteți arunca o privire la venv sau Distribuția Anaconda Python (pe care eu personal îl folosesc și îl recomand).

  2. Dacă nu aveți un motiv întemeiat, vă rugăm să nu vă încurcați cu componentele de bază.

  3. Înainte de a elimina pachetele despre care nu știți, puteți rula o simulare a eliminării, fără a elimina nimic, folosind aptlui -s steag (cum am făcut mai sus).

  4. Aveți o copie de rezervă a fișierelor și configurațiilor dvs. personale importante.

kanehekili avatar
drapel zw
!DA! Încă surprinzător cât de mulți oameni mai fac asta. Mulțumesc pentru răspunsul elaborat - păcat că nu va împiedica oamenii să continue să facă astfel de lucruri
Bernhard Binzen avatar
drapel fr
Multumesc mult pentru toate informatiile!
Puncte:2
drapel vn

Eliminarea Python înseamnă eliminarea unei părți a sistemului de operare.

Când executați comanda sudo apt purge python*, vine cu mai multe responsabilități.

  1. Îl rulezi ca sudo, ceea ce înseamnă că ar trebui să știi ce faci.
  2. Îndepărtați un pachet de sistem implicit - din nou ar trebui să cunoașteți implicațiile acestui lucru în prealabil.

O analogie cu aceasta ar fi ștergerea sistem32 folder în Windows (dosar care conține o mulțime de executabile de sistem și biblioteci), apoi plângeți-vă că sistemul de operare nu funcționează ulterior.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.