Ono v tomto pripade pouzivatel chcel mat nainstalovany a funkcny Steam. Spolahol sa na to, ze si to to apt nejako poriesi. apt sice nainstalovalo Steam, ale dostalo system do stavu kedy Steam proste nie je funkcny pretoze nema uplne zakladne zavislosti pre svoj beh. (co tiez okrem ineho znefunkcnilo aj cely system) Cize tam tie zavislosti rozhodne neboli dobre.
Ja samozrejme viem, ked vidim ake balicky to slo odinstalovat, ze to rozbije system. Ale fakt ze sa apt pyta ci je to OK a vyslovene pise ze Steam bude nainstalovany je chybna informacia. Steam (prakticky vzate) nainstalovany nebude lebo nebude fungovat.
Riešite nesprávny problem, dámi a páni. Ak použivate na správu balíčkov guix alebo nix namiesto apt, tak sa vám týto problém jednoducho nestane:
$ guix help package
Usage: guix package [OPTION]...
Install, remove, or upgrade packages in a single transaction.
...
--roll-back roll back to the previous generation
...
Guix aj Nix podporujú transakčné aktualizácie balíkov, návrat k predošlým verziám, prácu s balíkmi bez správcovských práv, a oveľa viac. Pozri napr. GNU Guix
Hele, když jsem začínal, tak jsem si taky nechtěně smazal X-ka...
Ono když ti vypíše na prvním řádku, že smaže něco, co by se mazat nemělo, pak několik obrazovek s výpisem balíčků (terminál v Gnome si by default pamatuje 200 řádků, pokud je balíčků víc, tak se nedá na tu informaci dostat a není jasný, jestli se bude mazat nebo aktualizovat).
Pak jenom hláška "Chystáš se dělat nebezpečnou věc, opiš frázi..." Ale neříká to nic o mazání, jenom o nebezpečné akci - a to je klidně i instalace nepodepsanýho balíčku. Opíšeš to a jsi v pr...
Nehledě na to, že pokud přes terminál nikdy nic neinstaloval, tak neví, jestli to je nebo není normální chování.
Takže i když je Linus lama, tady je prostě blbě APTčko.Na začátek patří info co se bude dít (přidám tohle, zktualizuju tamto, zmažu tohleto). Informace o nebezpečí patří na konec, aby to měl na obrazovce ve chvíli, kdy dostane potvrzovací prompt. A pokud možno červenou barvou...
„[...] zvyknem spozorniet a zacinam citat vo co go [...]“
A tohle je právě rozdíl mezi zkušeným uživatelem a tím, který tomu nerozumí, kompletně všechno je pro něj nové, neznámé a tyto zvyky nemá.
Víc toto rozebírám v reakci na jiný článek zde na rootu, copy-paste by byl asi považován za spamování.
Nicmene, jinak jsem stejneho nazoru jako kolega. V clanku se jasne pise, ze apt uzivatele upozorni na fatalni dusledky takove operace. Takze ignorovani takoveho varovani uz se neda svest na neznalost, nebo nekusenost BFU.
Jinak ja pouzivam Steam na Debianu, a problemy tohoto typu jsem zatim nezaznamenal, a to si Steam cas od casu sam zazada o doinstalovani nekterych baliku. To jeste vic posiluje moje podezreni, ze to maji spis dodrany v Pop!_os.
Sledoval jsem seriál Vyšetřování leteckých neštěstí. V jednom letadle byl problém s jakýmsi čidlem (gyroskopem?), počítač to zjistil, vyhodil info na umělý horizont předal řízení pilotům a ti si hlášky hned nevšimli. Letadlo se začalo naklánět na stranu. Aby měli piloti jenom informace o náklonu, rychlosti a výšce a nic je nerozptylovalo, umělý horizont při překročení mezních parametrů přestal zobrazovat "nerelevantní informace". Hoši - trénovaní profíci s nalítanýma tisícama hodin - nevěděli, co se děje, a rozpleskli se.
Program, který popis problému odscroluje do řiti a jenom hlásí, že se mu něco nelíbí, je ta samá situace. Info o problému má být jasný a viditelný ve chvíli, kdy ho jako uživatel řešíš. Ne zapomenutý mimo buffer terminálu někde před pěti obrazovkama. Ideálně když se dostane do prostoru 25x80 znaků aktuální obrazovky (vím, VGA je přežitek, ale zase je to zobrazená jistota).
Prostý seznam balíčků bez hlavičky nijak neimplikuje, jestli mažeš, instaluješ nebo aktualizuješ. Kdyby měli na začátku řádku třeba [-] pro smazání, [+] pro instalaci a [*] pro aktualizaci a ne jenom "removed" na prvním řádku... A těsně nad upozorněním o riskantní operaci ještě něco ve stylu "Odstranění těchto balíčků znefunkční to a to"
Předpokládaní profesionalita uživatele neomlouvá zprasení UI. Jsme jenom lidi a každý může udělat chybu.
[D.A.Tiger]
Varuje, ale tak, že
Následující balíčky budou smazány: - informace, co se bude dít, je na prvním řádku, nemusíš ji hned postřehnout
Seznam balíčků Sakra dlouhý, pokud vezme celý desktop, první řádek rychle odroluje mimo obrazovku nebo buffer terminálu (ne každý si dá buffer 20k řádků jako já). Možnost návratu na první řádek není. Lama neví, co je to za balíčky.
Pokračování může způsobit problémy a není jasno v tom, co jsou to možné problémy - jestli znefunkční systém, nebo jestli je to riziko nějakýho viru (ale on Steamu důvěřuje), nebo je to jenom SW nepodepsaný Mrkvošrotem jak ve Widlích. Takže sice je varován, ale nejspíš netuší před čím.
Opiš....
Sorry, ale bez křišťálové koule nebo videozáznamu obrazovky to jediný slovo, co může BFU zastavit - removed - nemáš šanci vidět. A pokud dám něco instalovat a nevidím na obrazovce, že se bude něco mazat, poslední, co bych čekal, je mazání.
Jenom ještě dodám přepis rozhovoru s APT:
Já: Přidej balíček a ty, na kterých závisí
APT: [seznam balíčků]
APT: To může být nebezpečný
APT: Nebudu pokračovat, dokud neřekneš "udělej, co jsem říkal"
Já: Udělej, co jsem říkal (a myslím tím přidání balíčku)
APT: Já tě varoval, odebírám balíčky...
Kdyby to aspoň chtělo napsat "Yes, remove them" aby se to ujistilo, že uživatel ví o mazání... Prostě UI na houby
Interakce programu s uzivatelem ma byt jasna a nema vezt k chybne interpretaci.
Pokud je uzivatel na neco tazan, ma byt pred samotnou otazkou jasne uveden duvod a jasne shrnuty dulezite informace.
To by apt za 5 radku kodu mohlo udelat lepe, a tim usnadnit zivot hodne lidem.
15. 11. 2021, 07:21 editováno autorem komentáře
Petr M
Jenom ještě dodám přepis rozhovoru s APT:
jenze ten prepis pokud si ho necucas z prstu, ale vezmem realitu je:
Ja: Přidej balíček
APT: [seznam balíčků]
APT:
VAROVÁNÍ: Následující nezbytné balíky budou odstraněny.
Pokud přesně nevíte, co děláte, NEDĚLEJTE to!
[seznam balicku]
0 aktualizováno, X nově instalováno, XXX k odstranění
Po této operaci bude na disku uvolněno XXX MB.
Chystáte se vykonat něco potenciálně škodlivého.
Pro pokračování opište frázi „Ano, udělej to tak, jak říkám!“
Ja: nebudu pokracovat protoze nejsem blbej :-)
btw: nekolikrat tu okecavas ze ty udaje NEjsou videt, ale JSOU, vcetne na videu od ktereho se to resilo, i presto ze ma okno zmensene na kousicek obrazovky... https://youtu.be/0506yDSgU7M?t=637
Presne tak, je to tam jasne videt, je to na stejne obrazovce, nikam nic neodscollovalo.
Clovek tuhle hloupost aspon jednou za zivot udela, ale je nefer to hazet na apt. A vubec mi neprijde jako ok to tak udelat pred milionem followers.
Hlaska "vymazu dulezity soubory, to by se nemelo delat" je zcela jasna. Sebemrskacstvi linuxovy komunity neni na miste.
Když jsem ten výpis viděl, tak mi přišel extrémně nepřehledný. Není tam čeho se vizuálně chytit; to VAROVÁNÍ splyne uprostřed haldy textu. Už tady někdo říkal něco podobného. To fakt není chyba uživatele, že tu informaci „něco děláš špatně, zastav“ v tom hned nepozná.
Řešením by, pro mne, bylo spíše zpřehlednit výstup aptu. Jasně říct na konci, co se stane (ne že je něco potenciálně nebezpečné – i přejít cestu na přechodu může být potenciálně nebezpečné), a vizuálně třeba oddělit aspoň odstavce textu; zauvažovat nad barevným zvýrazněním a pod.
Nicméně kvůli tomu, jaké řešení bylo nakonec přijato, si myslím, že to nebude tak jednoduché. Na výstupu apt-get závisí mnoho aplikací a apt z apt-getu nějakým způsobem asi vychází.
[Pavel Valach]
O tom co je a neni prehledne se muzem hadat tady 20 let bez nejakeho vysledku. V kontextu tohot vlakna to ani neni dulezite, protoze uzivatel varovani ZAREGISTROVAL.
Co je na tom to dulezite, ze uzivatel vi ze dela potencionalne nebezpecnou akci, ale nevi co presne co to pro nej znamena a jake to muze mit dusledky, pres toto vsechno klidne potvrdi pokracovani a pak se tu breci.
Apt bych osobne nechal na pokoji, proti takovemu jednani vam zadne barvicky nepomuzou. Konec koncu odobne zkusenosti maji i slusny vychovny efekt: Verim, ze ten kdo si necim takovym projde, si uz priste da mnohem vetsiho majzla a bude pro priste trochu vic premyslet o tom co momentalne dela. Mozna si to dopredu i zjisti. A to je mnohem vic, nez ten nejomalovankovitejsi interface ;)
15. 11. 2021, 22:33 editováno autorem komentáře
Nedavno se mi na celkem cerstve instalaci Ubuntu stalo to, ze po nejake aktualizaci mi zmizela hromada cross-compileru, ktere jsem si predtim rucne pres apt nainstaloval ze standardnich repozitaru.
Je dost dobre mozne, ze je to nastavilo na autoremove (no longer needed), a ja to pak nekdy potvrdil, nicmene i to mi prijde jako celkem zasadni chyba.
chyba ano, ale uzivatele (tedy tvoje), pokud si nainstalujes neco co dotahne dalsi balicky, pak to neco odinstalujes, takze ty dalsi balicky uz jsou osirele, tak je logicke ze autoremove je odebere, pokud to nechces nainstaluj ty balicky primo -- kliudne jakoze znovu a oni se oznacej jako rucne instalovane, nebo to prepni pres "apt-mark manual balicek"
v opacnem pripade by se totiz delo to ze v systemu zustanou hromady nepodrebnejch/nevyuzivanejch balicku coz by byla teprve zasadni chyba
Duhe vysvetleni je, ze trpim halucinacemi nebo nejakymi bludy.
V moji realite jsem udelal nekolikrat apt install, vse fungovalo. Pak nekolik dnu jina prace vramci niz bylo update/upgrade, a tady to nejspis psalo ze odstrani hromadu nepotrebnych balicku, mezi kterymi mohla byt ta GCCcka.
Po nejake dobe jsem zavolal make a ta GCC mi chybela. Opetovny apt install to napravil.
Je to mimochodem stejny system jako s timto problemem:
https://forum.root.cz/index.php?topic=25415.msg360829#msg360829
GENTOO! nebo Suicide Linux.
Ono pacman s kombinací yay je docela na úrovni prvně uvedeného a když člověk chce zkusit, že jakýkoliv nesprávný pokus používat terminál povede k rm -rf /, to už je taky něco.
Jak tak nad tím přemýšlím, jak vlastně systém tím prázdným souborem zachráním, když někdo do blogu o instalaci dá místo
sudo apt install ...
upravenou verzi
sudo touch ....
sudo apt install...
a lama to prostě zkopíruje? V tu chvíli je tam, kde by byla bez té pojistky.
13. 11. 2021, 10:47 editováno autorem komentáře
Ono cely ten sposob ako toto "vyriesili" je uplne nestastny a dufam, ze sa to nedostane do upstreamu. (verim ze nie) V /etc/apt/ ma apt svoje konfiguracne subory. Na Debian/Ubuntu derivatoch mohli proste pridat nejaku extra konfiguraciu do /etc/apt/apt.conf.d/
Pouzivat existenciu/neexistenciu nejakeho suboru ako sposob nastavenia apt je uplne nesystemovy a velmi nestandardny.
rozdil je podstatnej, zatimco dotaz o potrvrzeni slovy "Yes, do as I say!" ci v CZ: "Ano, udělej to tak, jak říkám!" muze nepremyslejici BFU potvrdit, tak s pojistkou tu moznost nema...
a protoze tezko nejakey navod pro BFU dnes ma "az to napise ze jde o nebezpecnej ukon, napis Yes, do as..." tak predpokladam "sudo touch /etc/.. pojistka v tech navodech take nebude :)
13. 11. 2021, 18:46 editováno autorem komentáře
Soustředěnýmu náporu blbosti neodolá nic. To ale neznamená, že když voloviny dělá BFU, musí voloviny dělat i vývojář.
A je docela podstatný, co všechno za tou pojistkou bude. Jestli odinstalace čehokoliv, nebo jenom odinstalace konkrétního balíčku ze seznamu ( na prasáka natvrdo v kódu, jak jinak :D ), nebo i instalace,... Pokud se dostane do stavu, kdy musí obejít pojistku pro korektní akci, projde i ta nekorektní.
Jediná korektní možnost není testovat prázdný soubor, ale u kritických balíčků hodit atribut, který spustí chování k eliminaci poškození systému. A to musí jednoznačně upozornit uživatele, že bude mazat co by neměl a měl by se to aktivovat fakt jenom výjimečně, aby se o tom nepsalo v návodu.
Ze zprávičky není zřejmý, co všechno a na základě čeho ten pojistný soubor pokryje.
byl by samozrejme nesmyl aby to blokovalo odinstalace nedulezitejch balicku...
tedy logicky predpokladam ze ta "pojistka" bude detekovana ve stejlejch pripadech v kterej ted normalne vyskocilo "Yes, do as I say!" a to NEni dane seznamem natvrdo v kodu, ale naprosto systemove, balicek je povazovan za dulezitej pro system pokud ma nastaveno "Essential: yes"
predpoklad sem mel spravnej, je to vylozene pridani detekce souboru k puvodni detekeci "essential" baliku:
https://github.com/pop-os/apt/pull/1/commits/0cbdc740944daa97ea5aceac52c172ada4fc0dc5