Fórum Root.cz

Hlavní témata => Distribuce => Téma založeno: hknmtt 01. 04. 2025, 17:33:16

Název: Idempotentný apt purge
Přispěvatel: hknmtt 01. 04. 2025, 17:33:16
Potrebujem zbehnut prikaz na odinstalovanie nejakych balikov na Ubuntu 24. Ked spustim
Kód: [Vybrat]
apt purge a b c -y -qq tak je vsetko v poriadku, na prvy krat. Ale ak ho spustim druhy krat, napriklad ked je to sucastou nejakeho skriptu, tak mi to zlyha s
Kód: [Vybrat]
E: Unable to locate package foo. Ako to mozem vynutit, pripade aky iny prikaz na odinstalovanie mozem spustit viacnasobne a nebude si stazovat? Na webe som nasiel zmienku o
Kód: [Vybrat]
--force-remove-reinstreq ale nechce mi to zobrat, neviem ci to apt podporuje alebo robim nieco zle s tym.
Název: Re:Idempotentny apt purge
Přispěvatel: Jose D 01. 04. 2025, 17:48:02
reálně .. si udělej nějaký wrapper na ansible.builtin.package [1]..

Ale jako jo, šlo by na to napsat oneliner do bashe s nějakými `dpkg` a `&&`.

[1] https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_module.html
Název: Re:Idempotentny apt purge
Přispěvatel: hknmtt 01. 04. 2025, 17:49:08
Zda sa, ze najvhodnejsie riesenie je odinstalovat iba jeden balik naraz. Potom funguje aj -qqq aby si nestazoval.
Název: Re:Idempotentny apt purge
Přispěvatel: hknmtt 01. 04. 2025, 18:04:40
Hm, tak nie. Stale si stazuje ak balik nejestvuje. Proste 2>/dev/null asi len
Název: Re:Idempotentny apt purge
Přispěvatel: hknmtt 01. 04. 2025, 18:25:33
Tak ani tak nie, lebo ak program neexistuje, apt mi exitne s kodom 100, co sa vyhodnoti ako zlyhanie.
Název: Re:Idempotentný apt purge
Přispěvatel: k3dAR 01. 04. 2025, 20:29:54
dohledani "nainstalovanejch"(nebo i odinstalovanejch pres 'remove' s pozustatkem conf aka rc) s jednoduchou for smyckou
Kód: [Vybrat]
packages="a b c d"
for i in ${packages}; do dpkg -l ${i} &>/dev/null && purge+=" ${i}"; done
apt -qq purge -y ${purge}

nebo obecna "prasarna", prepsat error code na 0 (pokud to mas s "set -e" kdy ti pri chybe script umyslne skonci)
Kód: [Vybrat]
apt -qq purge -y nenainstalovanej || true