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 apt
lui -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?
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).
Dacă nu aveți un motiv întemeiat, vă rugăm să nu vă încurcați cu componentele de bază.
Înainte de a elimina pachetele despre care nu știți, puteți rula o simulare a eliminării, fără a elimina nimic, folosind apt
lui -s
steag (cum am făcut mai sus).
Aveți o copie de rezervă a fișierelor și configurațiilor dvs. personale importante.