Ich möchte eine neue virtuelle Maschine mit einigen angegebenen Paketen (Name und Version) einrichten, die bereitgestellt werden.
Zum Beispiel Apache2 in Version 2.2.20-1ubuntu1
mit allen Abhängigkeiten. Auch wenn auf den Servern eine neue Version dieses Pakets vorhanden ist, sollte diese installiert werden.
Die Lösung muss mit mehreren (n) "Setups" funktionieren / skalieren. Eine andere virtuelle Maschine benötigt möglicherweise eine ältere Version von Apache2.
Ich kenne momentan einige Möglichkeiten, die die genauen Pakete installieren, aber nicht so gut skalieren:
- Kopieren Sie alle erforderlichen
*.deb
Daten manuell auf jede virtuelle Maschine und geben Sie Folgendes ein:dpkg -i
... -> Konnte funktionieren, ist jedoch sehr fehleranfällig. (Manuelle Skripte etc.) - Erstellen und verwenden Sie für jedes Setup ein neues Ubuntu-Repository. -> Funktioniert nicht, da ich n Repositories brauche.
- Richten Sie die Maschine einmal ein und kopieren Sie die VM / erstellen Sie einen Schnappschuss. -> Funktioniert nicht, da ich n VMs speichern müsste.
Mein Problem könnte als Patch-Verwaltung bezeichnet werden, aber ich möchte meine Pakete nicht auf die aktuelle Version aktualisieren. Mein Ziel ist es, alte Pakete zu installieren.
quelle
apt
Um zu überprüfen, welche Versionen verfügbar sind, können Sie Folgendes tun:
Wenn dies nicht funktioniert, können Sie
sudo apt-get update
die Paketliste vor dem Ausführen aktualisieren.Kopieren Sie dann die Version oder verwenden Sie die folgende Syntax:
Um zu überprüfen, welche Version Sie installiert haben, führen Sie Folgendes aus:
quelle
=2.2\*
Option hingewiesen haben, einen Platzhalter für die Auswahl einer verfügbaren Subversion zu verwenden. Das ist, was ich wissen wollte, aber nicht wissen, wie man fragt :)dpkg -l <packageName>
wird die Versionsnummer manchmal abgeschnitten. Verwenden SieCOLUMNS=100 dpkg -l <packageName>
N: Unable to locate package ^apache2
sudo apt-get update
Zuerst ausführen . Stellen Sie sicher, dass Sie die richtigen Apt-Quellen konfiguriert haben.Ich werde frühere Antworten mit anderen praktischen Versionsbefehlen in der
apt
Familie erweitern. Um zu sehen, welche Versionen verfügbar sind, führen Sie Folgendes ausapt-cache policy
:Installieren Sie dann, wie an anderer Stelle erwähnt, eine bestimmte Version mit
apt-get
:Sie können jetzt sehen, welche Version Sie installiert haben, indem Sie
apt-cache policy
erneut ausführen :Wenn Sie nicht möchten, dass neuere Versionen bei Updates installiert werden, heften Sie das Paket an
apt-mark
:Angenommen, eine neue Version von apache2 wird zum Paketindex hinzugefügt und Ihr Computer wird mit synchronisiert
apt-get update
. Das werden Sie sehen, wenn Sie das nächste Mal laufenapt-get upgrade
:quelle
In der Praxis ist dies nicht möglich, da die alten Versionen nicht im Archiv gespeichert sind. Wenn Sie also nicht irgendwo eine Kopie der alten Version haben, können Sie sie nicht installieren. Sie sollten sich fragen, warum Sie überhaupt eine ältere Version installieren möchten. In einer stabilen Version besteht der Hauptgrund für die Veröffentlichung einer neuen Version darin, eine Sicherheitsanfälligkeit zu beheben, und Sie möchten keinen anfälligen Server ausführen, oder?
quelle
Wie psusi erklärt, werden alte Versionen nicht im Ubuntu-Repository gespeichert, aber anscheinend finden Sie sie immer noch auf dem Launchpad. Also gehen Sie zu (ersetzen Sie trusty und amd64 durch Ihre Ubuntu-Version und -Architektur):
https://launchpad.net/ubuntu/trusty/amd64/apache2
und wählen Sie die gewünschte Version. Dann lädst du die Deb als Datei herunter und installierst mit:
Ersetzen Sie erneut den Dateinamen in Ihrer Datei. Das wird mühsam, wenn Sie viele Pakete downgraden müssen, aber es ist besser als nichts, wenn Sie verzweifelt sind.
quelle