Wie alle Abhängigkeiten eines Paketes bundeln?
Wie alle Abhängigkeiten eines Paketes bundeln?
Ich habe ein System (Ubuntu Hardy) das offline ist. Es hat auch kein CD-Laufwerk. Datentransfer ist nur per USB-Stick möglich.
Wenn ich ein neues Programm installieren will, dann lade ich mir das entsprechende deb-Paket runter, übertrage es per USB-Stick und installiere es dann. Das klappt ganz gut solange die Pakete wenige Abhängigkeiten haben.
Jetzt will ich aber ein größeres Programm installieren das etwa 30 Abhängigkeiten hat. Manche von denen sind vielleicht schon erfüllt. Manche werden aber ihrerseits wieder weitere Abhängigkeiten haben. Ich müsste also um die Hundert deb-Pakete von Hand runterladen. Das will ich mir ersparen.
Kennt jemand eine Möglichkeit, dass ich nur das Hauptpaket angebe und mir automatisch ein Archiv gebaut wird das alle Abhängigkeiten (auch die indirekten) enthält? Gibt's vielleicht 'ne Website die sowas anbietet?
Oder kennt jemand eine alternative Arbeitserleichterung?
Wenn ich ein neues Programm installieren will, dann lade ich mir das entsprechende deb-Paket runter, übertrage es per USB-Stick und installiere es dann. Das klappt ganz gut solange die Pakete wenige Abhängigkeiten haben.
Jetzt will ich aber ein größeres Programm installieren das etwa 30 Abhängigkeiten hat. Manche von denen sind vielleicht schon erfüllt. Manche werden aber ihrerseits wieder weitere Abhängigkeiten haben. Ich müsste also um die Hundert deb-Pakete von Hand runterladen. Das will ich mir ersparen.
Kennt jemand eine Möglichkeit, dass ich nur das Hauptpaket angebe und mir automatisch ein Archiv gebaut wird das alle Abhängigkeiten (auch die indirekten) enthält? Gibt's vielleicht 'ne Website die sowas anbietet?
Oder kennt jemand eine alternative Arbeitserleichterung?
Use ed once in a while!
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
guckstu http://sidux.com/PNphpBB2-viewtopic-p-36759.html#36759 (wobei man bei debian afaik eher aptitude nimmt als apt-get; aber das sollte sich nichts tun)
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Danke. Doch leider hilft das nicht so recht weiter.
Zum einen habe ich hier nur Windows-Systeme die einen Internetzugang haben.
Zum anderen habe ich keinen Zugriff auf ein Ubuntu Hardy System um den Befehl abzusetzen. Denn ich will ja die Pakete für Hardy.
Womöglich klappt es gar nicht einfach mit einem anderen System, denn falls dort schon einige der Abhängigkeiten installiert sind, dann tauchen sie wohl gar nicht mehr in der Liste auf. Okay, ich könnte vielleicht 'ne LiveCD auftreiben und hoffen, dass da nicht mehr installiert ist als auf meinem System.
Vielleicht kennt ja doch jemand einen Webservice der das anbietet.
(Ich fühle mich ja so eingeschränkt, ohne Internetzugang am Arbeitssystem und umzingelt von Windows-Rechnern. *heul* )
Zum einen habe ich hier nur Windows-Systeme die einen Internetzugang haben.
Zum anderen habe ich keinen Zugriff auf ein Ubuntu Hardy System um den Befehl abzusetzen. Denn ich will ja die Pakete für Hardy.
Womöglich klappt es gar nicht einfach mit einem anderen System, denn falls dort schon einige der Abhängigkeiten installiert sind, dann tauchen sie wohl gar nicht mehr in der Liste auf. Okay, ich könnte vielleicht 'ne LiveCD auftreiben und hoffen, dass da nicht mehr installiert ist als auf meinem System.
Vielleicht kennt ja doch jemand einen Webservice der das anbietet.
(Ich fühle mich ja so eingeschränkt, ohne Internetzugang am Arbeitssystem und umzingelt von Windows-Rechnern. *heul* )
Use ed once in a while!
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Wie waers wenn du dir die DVD-Distribution herunterlaedst!? - dauert lange aber der Sack ist zu.
Du kannst dir das auch unter Windows scripten, weil du ja dein Linux als Arbeitsrechner auslegst, installier Cygwin auf Windows, und deine 'Environment' erscheint dir gleich vertrauter. Dann wuerde ich mir die Abhaengigkeiten aus dem Paket aus dem Packages-File, also das was du mit apt-get update holst, auslesen und aufschluesseln. Ist mit etwas Uebung eine Sache von 1-2 Stunden, denke ich - mit einer entsprechenden Internetverbindung kann das schon die 1. DVD sein.
mfg
chab
[edit]
*rofl* - erinnert mich an die Zeit als dpkg noch kein apt kannte...
Du kannst dir das auch unter Windows scripten, weil du ja dein Linux als Arbeitsrechner auslegst, installier Cygwin auf Windows, und deine 'Environment' erscheint dir gleich vertrauter. Dann wuerde ich mir die Abhaengigkeiten aus dem Paket aus dem Packages-File, also das was du mit apt-get update holst, auslesen und aufschluesseln. Ist mit etwas Uebung eine Sache von 1-2 Stunden, denke ich - mit einer entsprechenden Internetverbindung kann das schon die 1. DVD sein.
mfg
chab
[edit]
*rofl* - erinnert mich an die Zeit als dpkg noch kein apt kannte...
Watt about the non-digital!?
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Bringt mir ja nichts, denn der Rechner hat kein Laufwerk. Und USB-Sticks auf die DVD-Images passen habe ich nicht.chabayo hat geschrieben:Wie waers wenn du dir die DVD-Distribution herunterlaedst!?
Was ich suche ist eine Möglichkeit unter Windows unkompliziert an die Deb-Files aller Abhängigkeiten eines Paketes zu kommen.
Falls man das als eingeschränkter Nutzer ohne C-Compiler überhaupt installieren kann. Aber den Windowsrechner will ich ja nicht groß benutzen, ich will damit nur das Zeug runterladen.Du kannst dir das auch unter Windows scripten, weil du ja dein Linux als Arbeitsrechner auslegst, installier Cygwin auf Windows, und deine 'Environment' erscheint dir gleich vertrauter.
Das könnte so gehen ... aber der Aufwand das zu programmieren ist vermutlich höher als wenn ich alle Abhängigkeiten von Hand runterlade und das für die zwei oder drei Programme die das in den nächsten Monaten betreffen wird. Das lohnt sich also nicht.Dann wuerde ich mir die Abhaengigkeiten aus dem Paket aus dem Packages-File, also das was du mit apt-get update holst, auslesen und aufschluesseln. Ist mit etwas Uebung eine Sache von 1-2 Stunden, denke ich [...]
Use ed once in a while!
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Da hast Du mich falsch verstanden. Was der Befehl macht ist, so zu tun, als ob er die Pakete (incl. aller Abhängigkeiten) runterladen will, aber stattdessen druckt er die URL's aus. Mit diesen URL's kannst Du dann auf jedem beliebigen online Betriebssystem (auch ner Linux-LiveCD auf Deinem Windows-Rechner) jedes beliebige Programm füttern, das reihenweise Dateien runterladen kann (z. B. wget, wie es in meinem Link gemacht wird). Aber es gibt sicher auch für Windows Programme, die massenweise Links abarbeiten können - im schlimmsten Fall öffnest Du das getdebs.sh im Firefox und ziehst die Pakete via DownThemAll.Meillo hat geschrieben:Zum anderen habe ich keinen Zugriff auf ein Ubuntu Hardy System um den Befehl abzusetzen. Denn ich will ja die Pakete für Hardy.
Womöglich klappt es gar nicht einfach mit einem anderen System, denn falls dort schon einige der Abhängigkeiten installiert sind, dann tauchen sie wohl gar nicht mehr in der Liste auf. Okay, ich könnte vielleicht 'ne LiveCD auftreiben und hoffen, dass da nicht mehr installiert ist als auf meinem System.
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Funktioniert das nicht nur, wenn das Offline System eine aktuelle Paketliste hat, also zumindest irgendwann mal online war, und "apt-get update" mit einer richtigen sources.list ausgeführt wurde?
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Ja. Aber jetzt habe ich's kappiert: Ich muss den Befehl auf meinem Offline-System ausführen.severin hat geschrieben:Da hast Du mich falsch verstanden.
Hab schon die Ausgabe angeschaut: Das sieht ziemlich gut aus. Getestet habe ich's noch nicht, aber ich gehe davon aus, dass es funktioniert.
Allerbesten Dank.
EDIT: quote gefixed
Zuletzt geändert von Meillo am 17.09.2009 18:40:49, insgesamt 2-mal geändert.
Use ed once in a while!
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
@Spasswolf: auch die mirror-Informationen kann man rüberkopieren. Ich weiß nur nicht genau, wo die liegen, aber wahrscheinlich auch irgendwo in /var/cache/apt.
EDIT:
Ich habe mich vertan: in /var/lib/apt/lists/ - vgl. http://www.lugs.ch/lib/doc/apt-offline.phtml
EDIT:
Ich habe mich vertan: in /var/lib/apt/lists/ - vgl. http://www.lugs.ch/lib/doc/apt-offline.phtml
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Habe mir die Kommandozeile zu einem kleinen Script gebaut. Vielleicht hat ja jemand mal Verwendung dafür.
Code: Alles auswählen
#!/bin/sh
#
# prints a script that downloads a package
# and all its dependencies using wget
#
# based on: http://sidux.com/PNphpBB2-viewtopic-p-36759.html#36759
# see also: http://debianforum.de/forum/viewtopic.php?f=12&t=114076
if [ $# -eq 0 ] ; then
echo "usage: deburls.sh <package> [...]"
exit 1
fi
apt-get --print-uris --yes install "$@" \
| grep "^'http:" \
| awk '{
if (NR==1) { print "#!/bin/sh" }
print "wget -c " $1 " -O " $2
}'
Use ed once in a while!
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Schönes Script, aber ein Verbesserungsvorschlag
Anstelle von
würde ich folgendes schreiben:
Das ermöglicht auch das Herunterladen von bereits installierten Paketen, ohne die eigentliche Funktion zu verändern.
Anstelle von
Code: Alles auswählen
apt-get --print-uris --yes install "$@"
Code: Alles auswählen
apt-get --reinstall --print-uris --yes install "$@"
Re: Wie alle Abhängigkeiten eines Paketes bundeln?
Das war in meinem Fall nicht gewünscht. Aber jemand anderes der mal über diesen Thread stolpert will es vielleicht so. Deshalb danke für die Ergänzung.ThorstenS hat geschrieben:Das ermöglicht auch das Herunterladen von bereits installierten Paketen, ohne die eigentliche Funktion zu verändern.
Use ed once in a while!