Tisztelt Gentoosok!
Szeretnék egy szívességet kérni. Korábban vizsgáltam a Debian/Ubuntu szoftvercsomag-függőségi hálózatát (tulajdonképpen egy jó nagy gráfot kb 30000 csomaggal), és most szeretném ezt kibővíteni. Egyik tanítványom készített az Arch Linuxról ilyen hálózatot pacgraph-fal (kicsit több mint 4000 csomag) és úgy tűnik, hogy a pacgraph működik Gentoo-val is. A -r kapcsolóval csak egy szöveges kimenetet ad, az kellene nekem, de nem szeretnék emiatt gentoot telepíteni. Az arch-ban van olyan opció, hogy --mode=arch-repo, amellyel a tárolókból szedi, és nem csak a gépen feltelepítetteket, de ez -- úgy látom, sajnos -- Gentooval nem megy. Nagyon örülnék, hogyha olyan gépről kapnék ilyen fájlt, amelyen sok csomag van telepítve.
Szívesen látok egyéb ötletet is, hogyan lehet a tárolókban levő összes csomag hálózatát létrehozni gentoo alatt.
Üdvözlettel: Horváth Árpád
- 7655 megtekintés
Hozzászólások
Ez jó!
Nem is hallottam még erről a pacgraph-ról, de hasonló témával már foglalkoztam, igaz debian csomagkezelővel.
- A hozzászóláshoz be kell jelentkezni
A deb-csomagok függőségi hálózatának létrehozására én is a python-apt-t használom. Ezzel tizenvalahány másodperc alatt kész a 33000 csomagból álló Ubuntus csomaghálózat, amit aztán tanórán is tudunk vizsgálgatni különböző szempontokból a remek igraph gráfvizsgáló programmal. Egyelőre még nem volt időm foglalkozni, hogyan tudom meg a virtuális csomagok (editor, www-browser...) "függőségeit".
Horváth Árpád (harp)
- A hozzászóláshoz be kell jelentkezni
Erre van példa a programban:
elif pkg.has_provides:
for provider in pkg.provides_list:
if is_available(provider[2].parent_pkg):
deps.add(provider[2].parent_pkg.id)
dependencies(provider[2].parent_pkg, deps)
De a fordítottjára is.
- A hozzászóláshoz be kell jelentkezni
A fő probléma a Gentoo-val hogy ha valaki elküldi neked a csomagfüggőségeit, az az ő csomagfüggősége lesz, nem a Gentoo-é. Mivel minden Gentoo telepítés más és más. Más USE-flagek miatt más függőségekre tarthat igényt egy-egy csomag.
- A hozzászóláshoz be kell jelentkezni
Igen. De sajnos jobbat nem tudok. Ha valaki sok csomagot használ, abban szerintem ugyanúgy meg kell jelennie például a hatványfüggvény jellegű fokszámeloszlásnak, vagy a véletlen (Erdős-Rényi) gráfhoz képest jelentősen nagyobb maximális fokszámnak és csoporterősségi együtthatónak, mint az egészben.
Horváth Árpád (harp) – Ubuntu (GNOME) / Debian (szerver)
- A hozzászóláshoz be kell jelentkezni
Akkor gyűjts be egy rakás ilyen csomaglistát. :)
- A hozzászóláshoz be kell jelentkezni
Talan hasznos, nem neztem utana:
https://soc.dev.gentoo.org/gentoostats/
https://soc.dev.gentoo.org/gentoostats/static/about.html
- A hozzászóláshoz be kell jelentkezni
Nem tudom, évek óta nem gentooztam, a csomaglistát nem lehet már letölteni portage-latest.tar.bz2 néven?
Anno ez egy alap lépés volt telepítésnél, mert semmilyen csomaglistát nem tartalmazott a telepítő.
Ez még megvan: http://gentoo.inf.elte.hu/snapshots/
- A hozzászóláshoz be kell jelentkezni
Ez a portage tree, viszont egy adott csomag függősége attól függ, hogy milyen use flagekket fordítod. Így minden gentoo telepítés egyedi függőségi fával rendelkezik, függően a helyileg beállított use flageknek.
- A hozzászóláshoz be kell jelentkezni
Nekem nem megy a pacgraph. Van valami függősége? (bár hibát nem ir)
gentoobinhost pacgraph # ./pacgraph -r Loading package info gentoobinhost pacgraph # cat pacgraph.txt {}gentoobinhost pacgraph #
Letöltöttem, kicsomagoltam, futtattam.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a próbálkozást! Szerintem nem a program függőségeivel lehet a gond, hanem valamiért nem ott keresi a dolgokat, ahol vannak. Egyelőre megvárnám, hogy vargad megtalálja-e a régebben használt programját. Ha nem, akkor lenne fontos a pacgraph-os kimenet.
Horváth Árpád (harp) – Ubuntu (GNOME)
- A hozzászóláshoz be kell jelentkezni
Nekem mindegy. Szívesen lefuttatom, de arra nincs időm és energiám, hogy megreszeljem. Készíts egy valamit amit csak letölthetek és futtathatok és kész.
- A hozzászóláshoz be kell jelentkezni
Én korábban készítettem egy olyan programot amely graphviz diagramot készít a függőségekről, ha jól emlékszem jelölve a use flag miatti függőségeket is. A diagram olyan nagy lett, hogy nem tudtam megjeleníteni. Sajnos a pdf olvasó az egész oldalt akarja a memóriában tartani nem csak a látható részeket, a képnézegetők szintén.
EDIT: Elvileg a felhasznált eszközök ma is működnek. Ha érdekel megnezem, hogy tudod-e valamire használni.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, az nagyon jó lenne :-) Bármilyen könnyen feldolgozható egyszerű szöveges (esetleg xml) formában megfelelne. Ha graphviz diagrammot készít, akkor gondolom .dot fájlt készít előtte. Az nekem teljesen megfelelő. Ez, ugye, nem csak a telepítetteket nézi, hanem az összeset.
EDIT: Nem valami ehhez hasonló? http://sources.freehackers.org/GentooDepBrowser
Én Ubuntu alatt próbáltam futtatni, de gondolom az "import portage" sor csak gentoo alatt működik.
Horváth Árpád (harp)
- A hozzászóláshoz be kell jelentkezni
Én nem a Python felületet használtam a portagenek, hanem parancssori eszközökkel szedem össze az információt. Nyilván így sokkal lassabb... Jelenleg csak a telepített programokat listázza ki az is elég sok volt, de úgy tűnik a teljes csomag listát képes lenne kis módosítással. A hétvégéig nem nagyon lesz időm foglalkozni vele, akkor megpróbálok neked készíteni egy függőségi listát valami egyszerű szöveges formába.
A Gentoo egyébként nyilvántartja a build time függőséget és a runtime függőséget, ha össze akarod hasonlítani a többi bináris rendszerrel gondolom neked csak a runtime kell.
Érdemes lehet megpróbálna a GentooDepBrowser-t amit linkeltél, a portage python felülete biztos gyorsabb, de lehet kicsit kell rajta reszelni, mert elég régi.
- A hozzászóláshoz be kell jelentkezni
A runtime függőség és a build time függőséget nem teljesen értem. Azt jelenti, hogy mik kellenek a fordításához, és mik kellenek a futtatásához? Úgy látom ilyesmiről van szó, hogy a binárisokhoz nem kell a build time függőség.
Van egy működő, ami a telepítetteket listázza, és lehet tudni, hogy hány van éppen azon a rendszeren? Érdekelne a programok száma, ha nem is az összes még.
Horváth Árpád (harp)
- A hozzászóláshoz be kell jelentkezni
Build time függőség pl. lehet a gcc, hogy a c-programokat lefordítsd. De ez nem runtime függőség, hiszen ahhoz, hogy fusson, a gcc nem szokott kelleni.
Tipikus példák: különböző fordítók, dokumentáció-generálás (pl. txt2man, doxygen, gnome-doc-izé), meg ilyesmi.
- A hozzászóláshoz be kell jelentkezni