Otlet: lehet hogy azt kellene csinalni, hogy egy csomag tartalmazza annak osszes fuggoseget is.
Elony: ha fel akarok telepiteni valamit akkor egy fajl kell abban minden benne van, minden program a csomjaban szallitott libeket fogja behuzni, jobb tesztelhetoseg talan.
Hatrany: nyilvan nem egy disk takarekos megoldas, de abbol van. Nyilvan nem ram takarekos, de mar abbol is van, es lehet csinalni egy kozos reszt is hogy az legyen. Nekem ennyi jutott most eszembe. Nektek???
Megoldasi modok:
- LD_LIBRARY_PATH modositasa, a legbutabb megoldas, talan nem is mindig mukodik, es kenyelmetlen, biztonsagi szempontbol sem a legjobb
- RPATH: szerintem eleg ennek a megoldasahoz
- custom dynamic linker es loader, tobb lehetoseg mint a RPATH-al de bonyolultabb is egyben
Kerdes megcsinaltak ez mar valhol? Es ha igen hogyan?
- pala blogja
- A hozzászóláshoz be kell jelentkezni
- 764 megtekintés
Hozzászólások
Rambol nincs annyi. Nem hiaba van dinamikus linkeles.
- A hozzászóláshoz be kell jelentkezni
Én már csináltam hasonlót LFS-ben. Ha jól rémlik, ment is ez a dolog :) Tudom, itt a hup-on a gobo nem örvend túl nagy népszerűségnek, de egy ahhoz hasonló módszerrel megoldható. Meg kell oldani, hogy amikor telepíted, az adott lib melyik verzióját használja, és onnantól elvileg jó lehet. Persze egy hátulütője is van a dolognak: ha frissíted a libet, és a régit törlöd, néhány program nem feltétlenül indul el, mert még a régi .so.2.3.1-et keresi, és már .so.2.3.10 van...
A honlapomon a blogok között keress, sőt, akár le is töltheted a szkriptjeimet (bár eléggé sok finomítani való lenne még rajtuk).
- A hozzászóláshoz be kell jelentkezni
Pont ezeket a szivasokat lenne jo elkerulni, valahogy ugy, hogy nem libeket frissited hanem csak egy csomagot es ez hozza be az uj libeket magaval.
-== If you want peace prepare for waR ==-
- A hozzászóláshoz be kell jelentkezni
Hát, ilyen fejlettségi fokot nem értek el a szkriptjeim :D
- A hozzászóláshoz be kell jelentkezni
Szerintem meg lehet oldani, hogy a régi libek fenn legyenek a újakkal együtt, és hogy a régi libekhez linkeld azokat a programokat, amiknek mindenképpen a régi kell.
RPATH elég szerintem.
Tanulmányozd a Gentoo new slot install lehetőségét! Nem állítom, hogy ez a megoldás, mert nem ismerem annyira a Gentoo-t, de szerintem érdemes ránézni, hátha.
Vannak olyan disztrókban is, mint a Debian, régi verziójú library-k. Szerintem érdemes lehet arra is rázni egy-egy konkrét esetben.
- A hozzászóláshoz be kell jelentkezni
Szerintem erre már csináltak megoldást. Ha jól emlékszem évekkel ezelőtt a Linux világban olvastam egy olyan megoldásról, amiben egy kattitással használhattad a programot miután letöltötted az Internetről. A leírás szerint a programok minden függéségégükkel együtt be vannak csomagolva és csak el kell indítani, kicsomgolja magát és működik. Persze lehet rosszul emlékszem és nem is így működött :).
Nem tudom mi lehetett neve... lehet ma is működik a szolgáltatás?
Ez biztos nem az, de talán hasonlít valamiben: http://www.autopackage.org
- A hozzászóláshoz be kell jelentkezni
En is hasonlora gondoltam (kovezzenek meg), amolyan binugz portable app. :)
- A hozzászóláshoz be kell jelentkezni
Hátránya, hogy legegyszerűbb program is 100 Mb küröl lesz. Belecsomaolsz mellé egy Gtk-t vagy Qt-t, meg pár lib és máris szép nagy darab.
- A hozzászóláshoz be kell jelentkezni
Hat teny es valo. De most jon a HUP best-of egyik hozzaszolasa.. "%date-es programhoz %date-es gep kell!!!!1111". :) Szoval most mar a 2TB alapdolog. :)))
ps.: Egyetertek. Esetleg beloni par gtk-t pl es megmondani melyikre hivatkozzon?... Sosem igazan erdekelt, mindig is ugy gondoltam ugy FUBAR ahogy van , s ez megint olyan dolog amit sosem fognak javitani.
- A hozzászóláshoz be kell jelentkezni
Nem feltetlenul.
Lehet olyat jatszani, hogy minden program ker biznyos verzioju libeket es azokat leszedi melle. Kicsit maven-esen gondolkozva.
Minden program felteszi az osszes (kiveve glibc, meg egyebb nagyon altalanos) dolgot egy adott prefix ala, libenekent kicsomagolva, majd sajat magat. Az install figyel arra hogyha ugyan az lib kerulne fel ami mar masutt fent van, akkor azt (hard)linkelje. Es valami pathban levo helyre egy shell script bellitja a megfelelo kornyezetet, es inditja tenyleges programot.
Az rpath azert nem jo mert, nem lehet felulbiralni forditas utan, mindig o az elso a kersesben.
Gentoo alatt nem volt depnedency hellem. A legdurvabb az utobbi 1 evben libjpeg verzioszam valtasa volt. De egy symlinkel legtobb program elhitte az ujrol, hogy az a regi.
Es ahogy mar mondtak gentooban van slot:
sys-devel/gcc
Available versions:
(2.95) *2.95.3-r9 ~*2.95.3-r10!s
(3.1) *3.1.1-r2
(3.2) **3.2.2!s *3.2.3-r4
(3.3) (~)3.3.6-r1!s
(3.4) 3.4.6-r2!s
(4.0) ~*4.0.4!s
(4.1) 4.1.2!s
(4.2) (~)4.2.4-r1!s
(4.3) 4.3.2-r3!s (~)4.3.2-r4!s (~)4.3.3-r2!s 4.3.4!s
(4.4) (~)4.4.1!s (~)4.4.2!s
Minden sorbol egy tagot fel tudok tenni parhuzamosan a tobbi sorbol kivalasztott egy taggal.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
A Gentoo elég jól kezeli a dolgokat, főleg a fejlesztői változató portage. Nyílvántartja melyik libet használják a programok és addig nem törli a régi verziót amíg van valami ami használja. Így nem lesz broken a fél rendszer mikor új verzió jön ki fontos libraryból.
- A hozzászóláshoz be kell jelentkezni
csak FYI: rpath modosithato -> http://www2.usit.uio.no/it/unix/store/proglist/chrpath.html
En mar hasznaltam jol mukodott, de abban egyetertek, hogy az rpath sem kulonb a LD_LIBRARY_PATH-os ganyolasnal.
-== If you want peace prepare for waR ==-
- A hozzászóláshoz be kell jelentkezni
Nem ez volt az?
http://0install.net/
Vegulis majdnem az amire gondoltam, nehol meg tobb is.
-== If you want peace prepare for waR ==-
- A hozzászóláshoz be kell jelentkezni
Ez nagyon tetszik... :)
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni