Ich möchte mein eigenes lokales Repository in meinem LAN erstellen, damit Computer im LAN es aktualisieren und aktualisieren können. Ich möchte die Pakete herunterladen und auf meinem lokalen Server speichern, damit ich sie aktualisieren, aktualisieren, installieren usw. kann, ohne das Internet zu verwenden.
apt
repository
grooveplex
quelle
quelle
Antworten:
Aus dem Ubuntu-Hilfe-Wiki :
quelle
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
. Was ist da/dev/null
los ? Ich habe auch die Manpage gelesen, aber es war nicht ganz klar.* So erstellen Sie ein Offline-Repository über LAN *
Installieren Sie einen lokalen Apache-Webserver
Standardmäßig richtet das Apache-Paket von Debian eine Website unter
/var/www
auf Ihrem System ein. Für unsere Zwecke ist das in Ordnung, es gibt also keinen Grund, mehr zu tun. Sie können es ganz einfach testen, indem Sie Ihren bevorzugten Browser auf zeigen.http://localhost
Sie sollten die Standard-Webseite nach der Installation sehen, die tatsächlich im/var/www/index.html
Verzeichnis
zum Erstellen eines Debian-Paket-Repository gespeichert ist, das Sie zum Erstellen eines Verzeichnisses ausgewählt haben
/var/www/debs
dafür. Darunter sollten Sie "Architektur" -Verzeichnisse erstellen, eines für jede zu unterstützende Architektur. Wenn Sie nur einen Computer (oder einen Computertyp) verwenden, benötigen Sie nur einen - normalerweise "i386" für 32-Bit-Systeme oder "amd64" für 64-Bit. Wenn Sie eine andere Architektur verwenden, gehe ich davon aus, dass Sie dies wahrscheinlich bereits wissen. Kopieren Sie nun einfach die ".deb" -Paketdateien für eine bestimmte Architektur in die entsprechenden Verzeichnisse. Wenn Sie jetzt beispielsweise mit Ihrem bevorzugten Webbrowser auf zeigenhttp://localhost/debs/amd64
, wird eine Liste der Pakete für 64-Bit-Systeme angezeigt .Erstellen einer Packages.gz-Datei
Nun müssen wir eine Katalogdatei erstellen, die APT verwenden kann. Dies geschieht mit einem Dienstprogramm namens "dpkg-scanpackages". Hier'
Machen Sie das Repository APT bekannt.
Jetzt müssen Sie APT nur noch über Ihr Repository informieren. Sie tun dies, indem Sie Ihre Datei /etc/apt/sources.list aktualisieren. Sie benötigen einen Eintrag wie diesen:
Ich habe den tatsächlichen Hostnamen meines Systems anstelle von localhost verwendet. Auf diese Weise ist der Code für alle Computer in meinem LAN gleich. Localhost ist jedoch in Ordnung, wenn Sie nur einen Computer ausführen.
Aktualisieren Sie jetzt APT:
quelle
/var/www/debs
in dieser Antwort möglicherweise durch ersetzen/var/www/html/debs
. Oder du benötigst zusätzliche Schritte, um deine Apache-Konfiguration in/etc/apache2
Erstellen eines authentifizierten Repository
Ich habe mir die Antworten hier und auf anderen Websites angesehen und die meisten haben den (meiner Meinung nach großen) Nachteil, dass Sie ein nicht authentifiziertes Repository einrichten. Das heißt , Sie ausführen müssen
apt-get
mit--allow-unauthenticated
Paketen aus , es zu installieren. Dies kann ein Sicherheitsrisiko darstellen, insbesondere bei Skripten, bei denen die von Ihnen installierten Pakete möglicherweise nicht alle aus Ihrem lokalen Repository stammen.Beachten Sie, dass ich hier nicht beschrieben habe, wie man es über das LAN verfügbar macht, aber das ist eine ziemlich allgemeine Konfiguration unter Verwendung von Apache oder Nginx (siehe die anderen Antworten hier).
Richten Sie das Repo-Verzeichnis ein
Fügen Sie dann eine Zeile wie die folgende hinzu
sources.list
:Pakete hinzufügen und entfernen
Pakete entfernen
Pakete hinzufügen
Führen Sie nun das folgende Skript aus, das die Dateien Packages, Release und InRelease generiert und mit Ihrem privaten gpg-Schlüssel signiert:
Beispiel Inhalt der Datei conf / distributions
Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC
Links
https://wiki.debian.org/RepositoryFormat
http://ubuntuforums.org/showthread.php?t=1090731
https://help.ubuntu.com/community/CreateAuthenticatedRepository
quelle
date -Rc
, ich habe es korrigiert, umdate -Ru
anzunehmen, dass es das ist, was Du aus der Edit-Beschreibung gemeint hastSie können den lokalen Quellserver auch mit nginx und reprepro einrichten:
Installieren Sie Debian-Pakete
erstelle Verzeichnisse für reprepro und bearbeite sie
/ srv / reprepro / ubuntu / conf / Distributionen
/ srv / reprepro / ubuntu / conf / options
Fügen Sie es in reprepro ein und erstellen Sie es
Config nginx:
/etc/nginx/sites-available/vhost-packages.conf
Eimergröße optimieren:
/etc/nginx/conf.d/servernamen_hash_bucket_size.conf
Verweis auf Install Guide Link
quelle
Vielleicht möchten Sie einen Blick auf
apt-mirror
und werfenapt-cacher
.Hier finden Sie eine Anleitung zur Installation und Verwendung.
quelle
Die Anweisungen in der Antwort von @ BigSack und in Ubuntus offiziellem Wiki-Beitrag haben unter Ubuntu 18.04 nicht funktioniert, bis ich diese beiden Änderungen vorgenommen habe:
Generieren Sie eine einfache, nicht komprimierte
Packages
Datei (bei der Ausführung muss sich das Arbeitsverzeichnis befinden, in dem sich alle Pakete befinden).Fügen Sie den folgenden Eintrag in hinzu
/etc/apt/sources.list
quelle
Weiter lesen
1 Quelle: Erstellen Sie ein Ubuntu-Repository
quelle
So
erstellen Sie ein lokales Offline-Repository: 1. Ermöglichen Sie den Zugriff auf ein Verzeichnis (mindestens von root).
quelle
Ich habe versucht,
apt-rdepends
wie in der ausgewählten Antwort zu verwenden, aber als ich versuchte, das Paket von meinem lokalen Repository zu installieren, beklagte es sich über fehlende Abhängigkeiten.apt-rdepends
habe einige der Abhängigkeiten für mein Paket nicht aufgelistet. Ich vermute, es hat etwas damit zu tun, dassapt-cache show
mehrere Datensätze dafür angezeigt werden.Stattdessen habe ich verwendet
apt-cache depends
, und das hat den Trick gemacht:Eine rekursive Liste der Abhängigkeiten erhalten
-i
: nur wichtige Abhängigkeiten--recurse
: rekursivVerwandle es in eine verdauliche Liste
| tr -d "|,<,>, "
| sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
| sort
| uniq > list.txt
Vollständiger Befehl:
Laden Sie die Pakete herunter
Scannen Sie nach den Paketen und machen Sie sie zu Packages.gz
quelle
Ich habe Apt-Mirror verwendet.
Es ist gut, aber Sie müssen mehr Festplattenspeicher haben, da es mit dem Repos-Server synchronisiert wird.
quelle