webentwicklung-frage-antwort-db.com.de

So laden Sie alle Abhängigkeiten und Pakete in das Verzeichnis herunter

Ich versuche, ein Paket auf einer Maschine ohne Internetverbindung zu installieren. Was ich tun möchte, ist, alle Pakete und Abhängigkeiten auf einer Maschine MIT Internetverbindung herunterzuladen und dann alles auf den Offline-Computer zu sneaker-net.

Ich habe mit apt-get und apt-cache gespielt, aber ich habe keine schnelle und einfache Möglichkeit gefunden, das Paket und die Abhängigkeiten in einem Schritt in ein Verzeichnis meiner Wahl herunterzuladen. Wie würde ich das machen? Mache ich dieses Problem richtig? Wie würden Sie Offline-Pakete installieren, die viele Abhängigkeiten haben?

49
user583507
# aptitude clean
# aptitude --download-only install <your_package_here>
# cp /var/cache/apt/archives/*.deb <your_directory_here>
35
metalheart

Die markierte Antwort hat das Problem, dass sich die verfügbaren Pakete auf dem Computer, auf dem die Downloads ausgeführt werden, vom Zielcomputer unterscheiden können und der Paketsatz daher möglicherweise unvollständig ist.

Um dies zu vermeiden und alle Abhängigkeiten zu erhalten, verwende ich Folgendes: 

apt-get download $(apt-rdepends <package>|grep -v "^ ")
59
onno

Der aptitude --download-only ...-Ansatz funktioniert nur, wenn Sie eine Debian-Distribution mit Internetverbindung in der Hand haben. 

Wenn Sie dies nicht tun, denke ich, ist es besser, das folgende Skript auf dem getrennten Debian-Rechner auszuführen:

apt-get --print-uris --yes install <my_package_name> | grep ^\' | cut -d\' -f2 >downloads.list

verschieben Sie die Datei "downloads.list" in einen verbundenen Linux-Computer (oder einen anderen Computer) und führen Sie Folgendes aus:

wget --input-file myurilist

dadurch werden alle Ihre Dateien in das aktuelle Verzeichnis heruntergeladen. Danach können Sie sie auf einen USB-Stick kopieren und in Ihrem getrennten Debian-Computer installieren.

gutschriften: http://www.tuxradar.com/answers/517

PS Ich habe den Blog-Post grundsätzlich kopiert, da er nicht sehr gut lesbar war und falls der Post verschwinden sollte.

16
FSp

Dieselbe Frage, die bereits hier beantwortet wurde: Wie kann ich die rekursiven Abhängigkeiten eines Debian-Pakets auflisten/herunterladen?

versuchen:

PACKAGES="wget unzip"
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests \
  --no-conflicts --no-breaks --no-replaces --no-enhances \
  --no-pre-depends ${PACKAGES} | grep "^\w")
14
panticz.de

Etwas vereinfacht (und was für mich funktionierte), funktionierte für mich (basierend auf all dem oben)
Beachten Sie, dass die Hierarchie der Abhängigkeiten tiefer als eine Ebene gehen kann

Abhängigkeiten von Ihrem Paket abrufen

$ apt-cache depends mongodb | grep Depends:
  Depends: mongodb-dev
  Depends: mongodb-server

URLs erhalten:

Sudo apt-get --print-uris --yes -d --reinstall install mongodb-org mongodb-org-server mongodb-org-Shell mongodb-org-tools | grep "http://" |  awk '{print$1}' | xargs -I'{}' echo {} | tee files.list
wget --input-file files.list
8
ozma

Dies lädt alle Debs in das aktuelle Verzeichnis herunter und schlägt NICHT fehl, wenn kein Kandidat gefunden wird.

Erfordert auch NICHT, dass Sudo sript ausführt!

nano getdebs.sh && chmod +x getdebs.sh && ./getdebs.sh

#!/bin/bash

package=ssmtp

apt-cache depends "$package" | grep Depends: >> deb.list

sed -i -e 's/[<>|:]//g' deb.list

sed -i -e 's/Depends//g' deb.list

sed -i -e 's/ //g' deb.list

filename="deb.list"

while read -r line
do
    name="$line"
    apt-get download "$name"
done < "$filename"

apt-get download "$package"

Hinweis: Ich habe dieses Beispiel als Beispiel verwendet, weil ich tatsächlich versucht habe, die Deps für SSMTP DL zu installieren, und dies ist auf debconf-2.0 fehlgeschlagen, aber dieses Skript hat mir das gebracht, was ich brauche! Ich hoffe es hilft.

7

Ich habe apt-cache depends packageverwendet, um in jedem Fall alle erforderlichen Pakete zu erhalten [], wenn bereits auf dem System installiert sind oder nicht .
Da der Befehl apt-cache je nach Sprache unterschiedlich arbeitet, müssen Sie diesen Befehl auf Ihrem System ausprobieren und den Befehl anpassen Apt-cache hängt von Ihrem Paket ab
Auf einem englischen System erhalten Sie:

$ apt-cache depends yourpackage
node
  Depends: libax25
  Depends: libc6


In einem deutschen System erhalten Sie: Knoten

  Hängt ab von: libax25
  Hängt ab von: libc6


Die englische Version mit dem Begriff:
"Depends:"
In diesem Befehl müssen Sie den Begriff "yourpackage" zweimal in Ihren Wunsch ändern, achten Sie darauf!

$ Sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "  Depends:" |  sed 's/  Depends://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


Und die deutsche Version mit dem Begriff:
"Hängt ab von:"
In diesem Befehl müssen Sie den Begriff "yourpackage" zweimal in Ihren Wunsch ändern, achten Sie darauf!
Dieser Text wird in diesem Befehl zweimal verwendet, wenn Sie ihn an Ihre Sprache anpassen möchten, kümmern Sie sich darum!

$ Sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "Hängt ab von:" |  sed 's/  Hängt ab von://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


Sie erhalten die Liste der Links in downloads.list
Überprüfen Sie die Liste, gehen Sie zu Ihrem Ordner und führen Sie die Liste aus:

$ cd yourpathToYourFolder

$ wget --input-file downloads.list


Alle Ihre erforderlichen Pakete sind in:

$ ls yourpathToYourFolder
4
michbau

Ich gehe davon aus, dass Sie eine schöne, fette USB HD und eine gute Verbindung zum Netz haben. Sie können apt-mirror verwenden, um Ihren eigenen Debian-Spiegel zu erstellen.

http://apt-mirror.sourceforge.net/

1

Dadurch werden alle Pakete und Abhängigkeiten (noch nicht installiert) in ein Verzeichnis Ihrer Wahl heruntergeladen:

Sudo apt-get install -d -o Dir::Cache=/path-to/directory/apt/cache -o Dir::State::Lists=/path-to/directory/apt/lists packages

Stellen Sie sicher, dass /path-to/directory/apt/cache und /path-to/directory/apt/lists vorhanden sind . Wenn Sie -o Dir::Cache nicht festlegen, verweist er auf /var/cache/apt, Dir::State::Lists zeigt auf /var/lib/apt/lists ( die Indexdateien der verfügbaren Pakete )

Beide -o-Optionen können anstelle von install mit Update und Upgrade verwendet werden.

Führen Sie auf verschiedenen Maschinen denselben Befehl ohne '-d' aus.

0
jjvs