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.
- 547 megtekintés
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 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Nem értetted meg a posztot.
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
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 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
É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
- A hozzászóláshoz be kell jelentkezni
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á.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
A leaves miért is nem jó? Pont azokat mondja meg, amiket fel kell tenni, a többi fog jönni mint dependencia.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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 :)
- A hozzászóláshoz be kell jelentkezni
Igen, igazad van.
- A hozzászóláshoz be kell jelentkezni
Ja, közben alá szerkesztettél, pedig épp jöttem én is beidézni :)
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ah, ez lehet, hogy nyolcason még nem volt :(
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
rpmorphan/deborphan a baratod.
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
Akkor tényleg a dnf leaves kell neked, lásd a fenti szálat.
- A hozzászóláshoz be kell jelentkezni
Nem egészen azt csinálja, amit kértél, ellenben gyanús, hogy azt, amit igazából akarsz :)
dnf repoquery --userinstalled
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
dnf history userinstalled
Show all installonly packages, packages installed outside of DNF and packages not installed as dependency. I.e. it lists packages that will stay on the system when Autoremove Command or Remove Command along with
clean_requirements_on_remove configuration option set to True is executed. Note the same results can be accomplished with dnf repoquery --userinstalled, and the repoquery command is more powerful in formatting of
the output.--userinstalled
Limit the resulting set to packages installed by the user. The exclude option in the configuration file might influence the result, but if the command line option --disableexcludes is used, it ensures that all in‐
stalled packages will be listed.
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)
- A hozzászóláshoz be kell jelentkezni
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"
- A hozzászóláshoz be kell jelentkezni
Vagy azok a csomagok valójában nem kellettek :)
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
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.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
"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.
- A hozzászóláshoz be kell jelentkezni