IPK Pakete von lokaler Quelle installieren


johnnysnet

Active Member
Joined
Dec 17, 2006
Messages
989
Location
Leipzig
ICQ
224443444
LOCATION
Leipzig
Hallo,

ich bräuchte so dringend mal jemanden, der sich wirklich gut mit Linux auskennt. Insbesondere mit der Handhabung des opkg Befehls vertraut ist.

Mit folgendem Script soll auf der Pandora ein C (?) Compiler installiert werden:
Code:
#!/bin/bash

if zenity --question --text="This installs GLBasic compiler. Needs a Wifi connection. Start?"; then
(
	gksudo opkg update
	gksudo opkg install libstdc++-dev cpp gcc g++ cpp-symlinks g++-symlinks gcc-symlinks 
	gksudo opkg --force-downgrade install libsdl-1.2-dev libsdl-mixer-1.2-dev
) | tee >(zenity --text-info --width=640 --height=480) >/tmp/glbinstall.txt

if [ -f /usr/bin/gcc ]; then
 zenity --info --text="Download complete. All done!"
else
 zenity --info --text="GCC seems *NOT* installed. Please report bugs."
 gedit /tmp/glbinstall.txt
fi
fi

Das klappt leider nur sehr unzuverlässig, da die über http://www.angstrom-distribution.org bezogenen Debian Pakete teilweise nur extrem langsam oder gar nicht geladen werden. Der Server scheint zeitweise sehr ausgelastet zu sein, was ich merkte, als ich dort manuell viele Pakete laden wollte. Aus diesem Grund, und auch weil ich bis jetzt nicht erneut geschafft habe, alles vollständig mit diesem Script wieder installiert zu bekommen, sehe ich die dringende Notwendigkeit einer offline Lösung!

Wie gesagt, ich habe mir die benötigten Pakete versucht, manuell herunterzuladen. Es sei jetzt mal dahingestellt, ob ich wirklich alle und die Richtigen zusammen habe, mir geht es nun erst einmal darum, wie ich die mit opkg aus einem Ordner von der SD-Karte installieren kann!

Vergebens bin ich daran, ein Script anzufertigen, welches das erledigt. Was auch immer ich versucht habe, will opkg sich immer wieder irgendetwas online laden. Zwar habe ich es geschafft, ein Paket von der SD-Karte als Quelle anzugeben, welches zunächst auch tatsächlich versucht wird, zu installieren. Aber noch bevor das erledigt ist, sucht opkg schon wieder online nach weiteren Paketen, findet diese nicht nicht, bis es schließlich heißt, dass das ursprüngliche Paket nicht installiert werden konnte.

Daher die Frage: wie bringe ich opkg dazu, in jedem Fall nur einen lokalen Ordner als Bezugsquelle zu nutzen?? Ich habe mir sehr wohl schon die Dokumentation zu diesem Befehl angesehen und bin auch auf die --offline-root Option gestoßen. Aber ich scheine nicht in der Lage, sie richtig anzuwenden oder verstehe deren Nutzen falsch. Mir fehlt hier eine Menge wahrscheinlich wichtiges Hintergrundwissen und ich bin schon am verrückt werden.

Es muss doch eine Möglichkeit geben, das offline zu installieren!
 
johnnysnet said:
Hallo,

ich bräuchte so dringend mal jemanden, der sich wirklich gut mit Linux auskennt. Insbesondere mit der Handhabung des opkg Befehls vertraut ist.

OK, ich bin jetzt nicht wirklich der Hirsch ... aber meine erste Vermutung ist, dass mindestens eines der zu installierenden Pakete noch weitere abhängige Pakete verlangt, die nicht in deiner Offline-Quelle vorliegen.

Hast du schon mal die Option --nodeps versucht? Damit sollte opkg nur das Paket installieren, welches auch explizit in der Befehlszeile angegeben ist. Wenn das korrekt abläuft, hast du zwar noch nichts nützliches installiert, da immer noch Pakete fehlen; aber wenigstens weisst du dann, dass das Problem darin liegt, DASS Pakete fehlen.
 
Hm, auf die Abhängigkeiten hatte ich eigentlich geachtet. Für jedes Paket war angegeben, von welchen Weiteren es abhängig ist und die habe ich mir dann auch jeweils alle geladen. Die erwähnte Option hatte ich nicht versucht, danke schonmal!

Was ich noch hinzufügen wollte: mir ist übrigens auch bewusst, dass es für opkg bestimmte config Dateien gibt und ich weiß auch schon, wo diese zu finden sind. Eventuell muss ich dort etwas abändern, um opkg von den Onlinequellen abzubringen!? Leider kann ich die Dateien nicht verändern, habe in dem Ordner keine Schreibrechte.
 
Sicher das du alle Abhängigkeiten richtig aufgelöst hast und diese offline zur Verfügung stehen?
Aber noch bevor das erledigt ist, sucht opkg schon wieder online nach weiteren Paketen, findet diese nicht nicht, bis es schließlich heißt, dass das ursprüngliche Paket nicht installiert werden konnte.

Das klingt irgendwie so als ob dem nicht so wäre, oder benötigt er ne Netzanbindung um die Abhängigkeiten aufzulösen?

Doofe Frage, aber was passiert wenn du das ganze ohne Netzanbindung versuchst?

Kenne mich leider mit opkg nur sehr begrenzt aus, da ich eigentlich portage jünger bin und auch kein System habe um das mal eben auszuprobieren.
 
Die Sache ist ja, dass ich bei mir zu Hause kein WLAN habe (wäre sehr interessiert an einer Lösung, die Pandora über USB Kabel die Internetverbindung meines Windows PC's mitnutzen zu lassen!), weshalb ich sofort ein Problem kriege, wenn opkg "online gehen" will. Im Moment bin ich endlich mal wieder mit der Pandora am WLAN und versuche mein Glück erneut. Er lädt nun schon über eine Stunde an dem Zeug, die Abhängigkeiten scheinen kein Ende zu nehmen.

Nein, wirklich sicher bin ich nicht, ob ich das Richtige geladen hatte. Ich weiß selber nicht, wie er die Abhängigkeiten ermittelt. Ob die in dem jeweiligen Paket definiert sind? Könnte ich mir vorstellen. Ohne Netzanbindung konnte ich gestern noch etwas erreichen, indem ich mit der --nodeps option verhindert habe, nach Abhängigkeiten zu suchen.

Dann hatte er immerhin alle offline verfügbaren Pakete installiert, aber beim Versuch zu compilieren gab es einen Fehler mit dem Hinweis auf eine falsche Version einer Bibliothek. Das Ganze ist ein Alptraum ohne Ende.
 
Uh die Pandora über usb mit ner Windows Kiste ins netz bringen, da brauchst bestimmt nen windows treiber für o_O
Wenn du irgendwo ein Linux PC hast geht das einfach via ip tables.

Zu dem Problem mit den Abhängigkeiten, du könntest doch ne debian live cd nehmen rechner davon booten dann die packete da abstauben und auf die pandora bringen, ist zwar bei weitem nicht der königsweg, aber könnte klappen ^^

bzw. wenn dir das rep zu langsam ist, wieso nimmst du nicht ein anderes das wird ganz sicher noch irgendwo anders gemirrort
 
Uh die Pandora über usb mit ner Windows Kiste ins netz bringen, da brauchst bestimmt nen windows treiber für o_O
Wenn du irgendwo ein Linux PC hast geht das einfach via ip tables.
Wirklich?? Das wäre ganz super, wenn Du mir da Instruktionen geben könntest, weil ich habe zumindest eine Knoppix-CD. Vielleicht können wir das per PM machen, wäre klasse.
Zu dem Problem mit den Abhängigkeiten, du könntest doch ne debian live cd nehmen rechner davon booten dann die packete da abstauben und auf die pandora bringen, ist zwar bei weitem nicht der königsweg, aber könnte klappen
Genau auf diese Idee bin ich vorhin auch gekommen. Wenn ich von meiner Knoppix-CD boote, vielleicht kriege ich das hin, mit der --download-only Option, die Pakete auf die Festplatte (auf welche ich ja von ner Live-CD Zugriff habe) zu speichern.
bzw. wenn dir das rep zu langsam ist, wieso nimmst du nicht ein anderes das wird ganz sicher noch irgendwo anders gemirrort
Naja ich war ja froh, überhaupt die eine Quelle herausgefunden zu haben, wo die Pakete gehostet sind. Und das nicht etwa über Google - im Terminal habe ich gesehen, von welcher Adresse die bezogen werden.
 
Also fürs Iptables networking hab ich das hier für dich, ist zwar eigentlich für den neo Freerunner, sollte aber mit ggf. leichten anpassungen auch auf der pandora funktionieren.
http://wiki.openmoko.org/wiki/USB_Networking
Hab leider noch keine Pandora, sonst könnte ich mal nen howto dafür verfassen, aber ohne Hardware wird das schwer ^^

Bezüglich der Reps, müssten nicht eigentlich die von Debian auch passen, kenn mich mit dem Packetmanager der pandora nicht aus, aber wenn der mit debian packeten umgehen kann, würde ich mal hier schauen:

http://www.debian.org/mirror/list
 
ich wuerde gerne eine klene frage zu opkg einstreuen ^^

kann man opkg sagen wo etwas hin installiert werden soll? ich kenn mich wenig mit linux aus und weiss net obs ueberhaupt moeglich ist etwas nicht in den "standardpfad" (wo auch immer das ist) zu installieren, aber ich wuerde eben gerne was ausm angstrom repo installiern und das nicht auf den NAND. mein /home/ liegt zB auf SD... ;)
 
Baret said:
ich wuerde gerne eine klene frage zu opkg einstreuen ^^

kann man opkg sagen wo etwas hin installiert werden soll? ich kenn mich wenig mit linux aus und weiss net obs ueberhaupt moeglich ist etwas nicht in den "standardpfad" (wo auch immer das ist) zu installieren, aber ich wuerde eben gerne was ausm angstrom repo installiern und das nicht auf den NAND. mein /home/ liegt zB auf SD... ;)

Sicher geht das, du kannst ihm nen PREFIX mit auf den Weg geben, frag mich aber nicht wie das bei dem Packetmanager geht.
Davon ab ist das aber ne ziemlich bescheidene Idee, danach müsstest du es wohl händisch linken und kA in wie weit der Packetmanager das mit updates dann hinbekommt, vorallem nützt es dir nichts, wenn du die Pandora neu flasht musst du alles wieder von hand linken.
Also es geht, aber es ist weder sinnvoll noch zu empfehlen.
Wenn du platz auf dem NAND sparen willst könntest du z.B. /usr auf die sd packen.
In wieweit das Sinnvoll ist kann ich dir allerdings nicht wirklich sagen.
 
taake said:
Also fürs Iptables networking hab ich das hier für dich, ist zwar eigentlich für den neo Freerunner, sollte aber mit ggf. leichten anpassungen auch auf der pandora funktionieren.
http://wiki.openmoko.org/wiki/USB_Networking
Hab leider noch keine Pandora, sonst könnte ich mal nen howto dafür verfassen, aber ohne Hardware wird das schwer ^^
Besten Dank! Das sieht sehr gut aus, auch mit noch viel fehlendem Hintergrundwissen, kann ich erkennen, dass das genau das sein muss, was ich suche ;) Würde dann in ner PM nochmal die eine oder andere Frage dazu stellen wollen, hoffe, ich belästige Dich nicht zu sehr.
Bezüglich der Reps, müssten nicht eigentlich die von Debian auch passen, kenn mich mit dem Packetmanager der pandora nicht aus, aber wenn der mit debian packeten umgehen kann, würde ich mal hier schauen:
http://www.debian.org/mirror/list
Hm, muss ich mir mal angucken. Ja, ich meine auch, dass das funktionieren müsste. .deb Pakete sollte jede Linux Distribution handeln können, glaube ich, bereits mitbekommen zu haben!? Bei der anderen Adresse, das waren auch bloß alles komprimierte Debian Pakete.

-- Do Mär 03, 2011 10:08 --

@Baret:
http://wiki.openmoko.org/wiki/Opkg/Documentation
Dort ist eigentlich gut ersichtlich, wie das funktioniert. Müsste dann in Deinem Fall etwa mit
Code:
opkg install --dest /media/<sd-card>
klappen.
 
Back
Top