ipkg package management patch

Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

ipkg package management patch

Beitrag von Zaphot »

hi

Ich hab hier nen Patch hinterlegt, der das iPKG packaging system ins cdk integriert. ipkg ist dem 'apt' Paket management System sehr ähnlich und kann auch mit *.deb Paketen umgehen. Das könnte für diejenigen mit IDE Interface nützlich sein, damit wird das installieren/entfernen von Software erleichtert. Platz für zusätzliche Pakete sollte ja auf der Platte vorhanden sein :)

Um das ganze einzurichten benötigt man folgende Dinge:

1. /etc/ipkg.conf
wie die config auszusehen hat kann man ergooglen. Ich habe zufällig für eines meiner anderen Projekte schon einen ipkg feed eingerichtet, der auch halbwegs zur dbox kompatibel sein sollte. Das setzt allerdings ein uclibc System vorraus: http://forum.tuxbox-cvs.sourceforge.net ... hp?t=46625
/etc/ipkg.conf sieht dann folgendermaßen aus:

Code: Alles auswählen

# /etc/ipkg.conf -- Configuration for ipkg, the Itsy PacKaGe management system
#
dest root /
src openNAS-stable http://www.opennas.info/packages/powerpc/stable
2. /lib/ipkg/status
Hier befindet sich eine Liste der bereits im Flash installieren Pakete. Durch ro-Dateisysteme wie z.B. squashfs befinden sich einige Pakete im Flash, die nicht ohne weiteres ausgetauscht werden können. Diese müssen in die 'status' Liste. Da das allerdings nicht so einfach zu automatisieren ist muss das erstmal von Hand angelegt werden. u.A. müsste da folgendes rein: libc, libstdc++, libz, libjpeg... Beispiel:

Code: Alles auswählen

Package: uclibc
Version: 0.9.28.3
Status: install user installed
Architecture: powerpc
Installed-Time: 1188649674

Package: libstdc++
Version: 6.0.3
Status: install user installed
Architecture: powerpc
Installed-Time: 1188649674

Package: libz
Version: 1.2.3
Status: install user installed
Architecture: powerpc
Installed-Time: 1188649674
3. /usr
Die Pakete sollten mit dem prefix /usr gebaut werden. Deswegen muss /usr auch existieren und irgendwo auf die Festplatte verweisen. Ausserdem wäre es natürlich nützlich wenn /usr/bin u.ä. im PATH liegt :)

4. update/install
wenn ich nichts vergessen habe kanns auch schon mit "ipkg-cl update" und "ipkg-cl install ..." los gehen...
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

krass :)
werd ich dann gleich mal probiern :)
Z80
Erleuchteter
Erleuchteter
Beiträge: 710
Registriert: Dienstag 3. September 2002, 12:54

Beitrag von Z80 »

cool :o
iPKG auf der dbox2? - dass ist das noch erleben darf :D
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

geht leider nicht, da ich nicht newmake nutze :(

Code: Alles auswählen

16:46:23 (263.41 KB/s) - »Archive/ipkg-0.99.163.tar.gz« gespeichert [470728/470728]

( rm -rf ipkg-0.99.163 || /bin/true ) && gunzip -cd Archive/ipkg-0.99.163.tar.gz | TAPE=- tar -x && ( cd ipkg-0.99.163; patch -p1 < ../Patches/ipkg.diff )
patching file ipkg_conf.c
patching file ipkg.h
patching file ipkg.h.in
patching file pkg_dest.c
patching file pkg_dest.h
patching file ipkg_download.c
cd ipkg-0.99.163 && \
                AR=powerpc-tuxbox-linux-gnu-ar AS=powerpc-tuxbox-linux-gnu-as CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++ NM=powerpc-tuxbox-linux-gnu-nm RANLIB=powerpc-tuxbox-linux-gnu-ranlib CFLAGS="-mcpu=823 -mmultiple -mstring -meabi -pipe -Os" CXXFLAGS="-mcpu=823 -mmultiple -mstring -meabi -pipe -Os" LDFLAGS="-s" PKG_CONFIG_PATH=/home/mb405/image/dbox2/cdkroot/lib/pkgconfig \
                ./configure \
                        --build=i686-suse-linux \
                        --host= \
                        --prefix= \
                        --with-ipkglibdir=/lib && \
                make all && \
                make install DESTDIR=/home/mb405/image/dbox2/cdkroot
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-suse-linux-gnu
checking host system type... i686-suse-linux-gnu
checking for gawk... (cached) gawk
checking for gcc... powerpc-tuxbox-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
make: *** [.deps/ipkg] Fehler 1
dwilx

Beitrag von dwilx »

Sollte das -target nicht angegeben sein? Sieht doch aus, als würde das nicht für die Box kompiliert werden:
error: cannot run C compiled programs.
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Beitrag von Zaphot »

ach ja, da war ja noch was :)
ich hatte $target umbenannt (uclibc patch), das hat aber nichts mit newmake zutun. Der Patch ist jetzt gefixt, bitte nochmal downloaden.

ich bin mir aber nicht sicher ob das auch mit einem nicht-newmake branch baut.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

das mit den gnu_target und target geht :) bin auch selber drauf gekommen. juhu
also kann man dem programm nicht sagen beim aufruf, das die lib woanders liegt ?

./ipkg-cl: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Beitrag von Zaphot »

die lib sollte eigentlich in /lib liegen... tut sie das nicht? oder ist das beabsichtigt?
naja, jedenfalls kannst du mit "LD_LIBRARY_PATH=/irgendwo/hin ipkg-cl" tricksen... "/irgendwo/hin" steht für das Verzeichnis in das deine lib liegt.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so ich habs mal neu compiliert.
läuft ohne fehler durch.
am diff müssen wir noch schrauben :)
paar verzeichnisse müssen noch ins var, damit man das ordentlich testen kann.

die ipkg.conf -> /var/etc/

ipkg: Cannot create directory `//lib/ipkg': Read-only file system
ipkg: Cannot create directory `/lib/ipkg': Read-only file system
ipkg: Cannot create directory `//lib/ipkg': Read-only file system
ipkg: Cannot create directory `/lib/ipkg': Read-only file system
ipkg_update_cmd: ERROR: failed to make directory /lib/ipkg/lists: Read-only file system

solche fehlermeldungen kommen, wenn ich mal spassenshalber
ipkg-cl update -test -conf /var/etc/ipkg.conf
eingebe
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Beitrag von Zaphot »

ok, die ipkg status files werden mit dem aktuellen diff jetzt auch ohne "make flash-ipkg" (newmake) in /usr/lib geschrieben...
mit "export IPKG_CONF_DIR=/var/etc" kannst du das config Verzeichnis setzten.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

usr/lib ??
mhhh gibbet nicht in squashfs.
am besten wenn es machbar ist, irgendwie ins /var oder /tmp zeigen lassen ?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

usr/lib ??
mhhh gibbet nicht in squashfs.
am besten wenn es machbar ist, irgendwie ins /var oder /tmp zeigen lassen ?
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Re: ipkg package management patch

Beitrag von Zaphot »

Zaphot hat geschrieben: 3. /usr
Die Pakete sollten mit dem prefix /usr gebaut werden. Deswegen muss /usr auch existieren und irgendwo auf die Festplatte verweisen. Ausserdem wäre es natürlich nützlich wenn /usr/bin u.ä. im PATH liegt :)
;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ups :)
im rausch überlesen :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab mal die anweisung /usr einfach zum testen mal auf /tmp umgebogen zum testen.und siehe da es geht :)
...
--with-ipkglibdir=/tmp && \
...
das einzigste was mich jetzt noch bissle stört, das die ipkg-cl in bin immer gelöscht wird nach dem rebuild-flash die lib aber dort bleibt(gestrippt) wo sie hingehört :(
sehr komisch. ich verstehe das nicht.
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Beitrag von Zaphot »

also mit newmake funktioniert das :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

leider mach ich nur oldmake
ich hab einfach das contrib.aps.mk in die makefile.am reingemacht.
ich verstehe die makefile leider gar nicht. ansonten lüppts ja schon ganz gut.
ich werd mal versuchen ein packet zu schnüren.
kannst beschreiben wie das geht ?

ps gibts für die allnet6200 mal etwas neues ??
ich hab versucht dort einen streamripper zu installieren. fehleanzeige