Ich muss verwenden apt-get download
, um eine bestimmte Version einer .deb
Datei abzurufen , aber nicht unbedingt die genaue Version. .deb
Abhängigkeiten dürfen Ausdrücke wie verwenden, >=0.3.0
und ich möchte apt-get download
die gleiche Version abrufen wie die, die mit einer solchen Abhängigkeit heruntergeladen werden würde.
Zusammenfassend möchte ich Folgendes tun:
$ apt-get download package='>=0.3.0'
Irgendeine Idee, wie ich diese Funktionalität bekommen könnte?
Antworten:
Sie könnten dies tun, indem Sie zuerst herausfinden, welche Version die neueste Version ist, die auch größer oder gleich Ihrer gewünschten Mindestversion ist. Dann laden Sie genau diese Version mit herunter
apt-get download
. Hier ist ein Skript, das dies ausführt (es ist ein bisschen hässlich, aber Sie haben die Idee):Sie müssten eine Fehlerprüfung hinzufügen, falls das Paket nicht existiert usw., aber dies enthält die Kernlösung. Außerdem habe ich hier angenommen, dass Sie das neueste verfügbare Paket wollen, das mindestens eine bestimmte Version ist. Wenn Sie stattdessen das älteste verfügbare Paket wünschen, das mindestens eine bestimmte Version hat, müssen Sie das Skript so anpassen, dass die Suche abgebrochen wird, sobald etwas gefunden wurde, das mindestens Ihrer gewünschten Version entspricht.
quelle
Da Sie genau das möchten, was
apt-get install
Sie erhalten, kann es sich lohnen,apt-get install
im "Nur-Download-Modus" ein benutzerdefiniertes Archivverzeichnis zu verwenden:Wie ändere ich das Archivverzeichnis? Dies ist eine Konfigurationsoption:
Diese können vorübergehend mit dem
--option
Parameter geändert werden:Zusammenfassen:
Mit diesem Befehl werden die relevanten
.deb
Dateien für<package>
to heruntergeladen (und nur heruntergeladen, nicht installiert)/some/cache/dir
. Das Verzeichnis enthält die.deb
Dateien für das Paket, seine Abhängigkeiten, eine Sperrdatei und ein 'partielles' Verzeichnis (das leer sein sollte). Das Herausfiltern der genauen benötigten.deb
Datei sollte trivial sein.quelle
apt-get install
Superuser-Zugang.apt-get download
Außerdem können Sie die Zielfreigabe festlegen. Würde es nicht helfen?Kommentar zu # 1 (kann keine Kommentare verwenden) - Das Hinzufügen eines Parameters
--print-uris
zuapt-get install
erfordert keine Root-Rechte (aber Sie müssen ihn selbst herunterladen - am besten mit wget -i FILE_LIST).quelle
Ohne SU-Berechtigungen können Sie weiterhin apt-cache ausführen und mit der Filterung kombinieren, um diese Informationen abzurufen. Verwenden Sie etwas wie:
Unter Debian 5:
Auf 6 können Sie verwenden:
Apt-Cache scheint das Verhalten in der Reihenfolge der Liste zwischen 5 und 6 geändert zu haben, so dass auf 6 das neueste als letztes kommt.
Ein Wort der Vorsicht ist, dass, wenn Sie diese Ausgabe verwenden, während Sie sagen, "um dieselbe Version abzurufen, die mit einer solchen Abhängigkeit heruntergeladen werden würde", die Version des verfügbaren Pakets möglicherweise geändert wird, wenn Sie apt-get update (mit) ausführen su privs natürlich), oder wenn dies so eingestellt wurde, dass es automatisch ausgeführt wird und zwischendurch passiert, wenn Sie die Version erfasst haben, und wenn Sie das Skript ausführen, das Dinge installiert, die erwarten, dass dies die Version ist.
quelle