Van egy 8-as rendszer telepített csomagokkal. Létezik-e olyan program/parancs, amellyel kiíratható, hogy mi az a minimális csomag aminek a telepítésével reprodukálható a jelenlegi telepített csomagok telepítése. Tudom, lehetne hogy kiíratom az összes csomagot mondjuk rpm -qa-val és azt használom, csak lett egy ilyen ötletem, kerestem a neten, nem találtam megoldást és gondoltam megkérdezem itt.
Egyszerű példa. "A" csomag függősége "B", "B" csomag függősége "C", tehát ha "A" csomagot telepítem, a függőségek miatt települ "B" és "C" csomag is. Ha minden telepített csomagot kiíratok, akkor bekerül "A" "B" "C" csomag, ezzel szemben egy olyan lenne jó, hogy a program kimenete a függőségek figyelembevételével csak egy "A" lenne. Három csomagnál ez nem nagy dobás, sok csomagnál lehet érdekes, hogy kiírja a minimális szükséges csomagot.
Hozzászólások
Hát nem tudom, én mindig minimalt választom, de az annyira minimál már, hogy a wget sincsen benne, de az még elmegy, viszont tar is kimarad már a minimalbol ... Ellenben iwl* firmware csomag benne van :D
Érdekes csomagválaszték egy szervernél ...
Fedora 40, Thinkpad x280
Nem értetted meg a posztot.
Háát, végülis tényleg törekedtek a minimumra. :-)
Ez egy munkaállomás, nem szerver, igazából nem azt szeretném tudni, hogy mi a minimális telepíthető csomag amivel elindul egy gép úgy általában, hanem a használt gépemen jelenleg telepített csomagokat milyen minimális csomaggal tudom reprodukálni.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Mivel jársz jobban ha modjuk rpm -qa visszadja az A.rpm B.rpm C.rpm et
és dnf install A.rpm B.rpm C.rpm helyett te csak annyit irsz be hogy dnf install A.rpm
A gépelésen kívül ?
Fedora 40, Thinkpad x280
Csupán az én agymenésem. Nekem tisztább, szárazabb érzést ad, ha azt adom meg ami minimálisan kell és minden mást a saját függőségei szerint telepít. :-) Igazából a gépelés nincs az okok között, mert állományba menteném és onnan tölteném be telepítéskor. De írtam is, tudom, hogy létezik az rpm -qa irány, ha nem lesz megoldás a csomag minimalizására, akkor marad az rpm -qa és összes csomag.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Azzal, hogy (feltéve, hogy B és C A dependenciái) a dnf is tudni fogja, hogy azok dependenciák, és le tudja őket szedni automatikusan, ha később leszeded A-t. Ha viszont kiírod, akkor explicit te kéred, hogy ott legyen.
UNIX haladó -> Linux-haladó
trey @ gépház
Bocs, nem vettem észre és köszi.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Érdekes, bugos a HUP.
A főoldalon az látszik, hogy ez a Linux->Linux haladó topikban van (a fórum oldala is ezt mutatja), viszont a lap tetején azt látom, hogy ez a topik még mindig a UNIX->UNIX haladó fórumban van:
https://imgur.com/a/myG7Stf
Cache-elés miatt.
trey @ gépház
A dnf-hez van egy repograph nevű eszköz: https://github.com/rpm-software-management/dnf-plugins-core/blob/master…
De sajnos ez csak egy repositoryra építi fel a csomagfüggőségi gráfot, nem a telepített csomagokra.
Van a dnf leaves plugin: megmondja, hogy mik azok a csomagok, amelyek nem függnek egyik másik csomagtól sem.
De ez sem jó, ez azokat a csomagokat mondja meg, amiket ha uninstallálsz, akkor más nem fog törlődni.
nem tudok olyan dnf plugint, ami ezt tudná.
Köszi, ez a repograph nekem nem jött le találatnak keresésnél, viszont lehet érdekes, mert hiába az egész repora csinálja meg a függőség gráfot, lehet ott tudok metszetet képezni a telepített csomagjaimra és akkor pont jó lesz az eredmény. Elméletileg. Nem feltétlen dnf plugin-t keresek, bármilyen program megfelel, most a cél számít.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
A leaves miért is nem jó? Pont azokat mondja meg, amiket fel kell tenni, a többi fog jönni mint dependencia.
Nem, a leaves a leveleket mutatja meg (nem a fa gyökereit). Ha jól értem.
Szerk: neked van igazad. A dnf5 dokumentációja részletesen le is írja:
All the packages on this list is either needed by you, other users of the system or not needed at all – if it was required by another installed package it would not be on the list.
If you want to uninstall anything from your system (without breaking dependencies) it must involve at least one package on this list.
If there is anything installed on the system which is not needed it must be on this list – otherwise it would be required as a dependency by another package.
De hát neki a levelek kellenek, nem a gyökerek. Pont azt szeretné, hogy csak azt kelljen beírni, ami nem települ függőségként.
Szerintem fordítva nézed a fát :)
Igen, igazad van.
Ja, közben alá szerkesztettél, pedig épp jöttem én is beidézni :)
Köszi, megnézem, bár jelenleg:
# dnf leaves
No such command: leaves. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(leaves)'"
Leírás (https://dnf-plugins-core.readthedocs.io/en/stable/leaves.html) alapján a dnf-plugins-core része.
# dnf install dnf-plugins-core
Last metadata expiration check: 0:02:20 ago on Mon 27 Nov 2023 03:11:04 PM UTC.
Package dnf-plugins-core-4.0.21-23.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Ajánlott parancs:
# dnf install 'dnf-command(leaves)'
Last metadata expiration check: 0:02:40 ago on Mon 27 Nov 2023 03:11:04 PM UTC.
No match for argument: dnf-command(leaves)
Error: Unable to find a match: dnf-command(leaves)
Holnap visszatérek rá miért nincs nálam, pedig van hozzá tartozó csomag telepítve, plusz amit ő ajánl parancsot miért nem érti. Lehet később érkezett a plugin csomagba, mint az én verzióm.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
RHEL 9.3-mon elérhető ez, telepítve a csomagot.
python3-dnf-plugin-leaves.noarch 4.3.0-11.el9_3 @rhel-9-for-x86_64-appstream-rpms
Ez van telepítve nálam.
Ah, ez lehet, hogy nyolcason még nem volt :(
Nomostan attól, hogy tudod, hogy a B és C csak függőség miatt került fel, mennyivel vagy "előrébb" egy yum-debug-dumo/yum-debug-restore párosnál?
Nem feltétlen vagyok "előrébb", nem is ilyen oldalról néztem, egyszerűen nekem jobban "tetszik" ha csak "A" van felsorolva, a többit meg a csomagkezelő döntse el. De megnézem amiket írtál, köszi, soha nem használtam őket.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
rpmorphan/deborphan a baratod.
Köszi, megnézem, az oldala alapján az rpmdep adhat nekem érdekes kiindulópontot.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Olyasmi lenne a kérdés, hogy a telepített komponensek közül melyeket lehet elhagyni, de úgy, hogy utána is ugyanazok a komponensek legyenek telepítve, mint most?
egzaktli, minden olyan csomag repüljön, ami a kimenetként adott programok függőségeként felkerülne amúgy.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Akkor tényleg a dnf leaves kell neked, lásd a fenti szálat.
Nem egészen azt csinálja, amit kértél, ellenben gyanús, hogy azt, amit igazából akarsz :)
dnf repoquery --userinstalled
Ezt megnézem, köszi, értem a logikát ami miatt megfelelhet, de a leírása alapján nem tudom eldönteni, hogy nekem jó-e. A kérdés, hogy szerinte mi minősül általam telepítettnek és mi nem.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Gyakorlatilag azt, amit explicit kértél, hogy tegyen fel, nem valaminek a dependenciájaként érkezett. (Az installonly a kernel és környéki csomagok, amiket nem upgradel, hanem simán feltesz, meg egy idő után leszed)
Próbáltam, de nem ugyanazok kerültek fel a "célgépre", hanem kevesebb csomag, megnézem mi lehet az oka, de iránynak jónak tűnik. Lehet valami modul szarakodás mögötte.
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
Vagy azok a csomagok valójában nem kellettek :)
Igen, természetes szelekció. :-)
"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."
"Its easier to fool a man than it is to convince they have been fooled"
A dnf leaves mellé ajánlom még ezt:
dnf repoquery --userinstalled
Vagy:
dnf history
Ezekkel kiszűrheted a leaves listából, amit kézileg te tettél fel, így tényleg csak azok a csomagok maradnak, amik a rendszerrel alaptelepítésben jönnek és nem függőségként kerültek fel.
Ha valakit érdekel, Arch-on ugyanez: pacman -Qtq. Bár ott nincs minimális rendszer, mert az települ, amit a user feltesz a Wiki alapján, ha nagyon minimális szettet kéne mondanom, akkor a linux, linux-firmware, base csomagokat mondanám, meg valamelyik bootloader csomagját, ezekkel lehet egy bootképes rendszert kapni, bár önmagában nem lesz túl sok mindenre használható, még egy text editor se lesz benne, se ed, se vi, se semmi, de be fog bootolni tty-ra, meg lesz minimális hálózat, GNU coreutils, Bash, stb..
Debian/Ubuntu vonalon az apt-tal nem is tudom hogy kell ilyet, de emlékeim szerint elég pain in the ass lekérdezni.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
"Debian/Ubuntu vonalon az apt-tal nem is tudom hogy kell ilyet, de emlékeim szerint elég pain in the ass lekérdezni."
apt-mark showmanual
Persze ez nem/sem tesz különbséget a kézzel feltelepített és pl. telepítéskor automatikusan (base-files pl.), vagy scriptből felkerült csomagok között.
Aztán lehet még ügyeskedni pl. így:
apt-cache depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --recurse base-files
Az összes essential csomagra:
apt-list ?essential
Vagy ezt kivonni a showmanualból, vagy azt mondani, hogy minden más manual csomag és jónapot. Vagy nem.