Einfache Möglichkeit, ein Debian -Paket und ein lokales Paket -Repository zu erstellen

Einfache Möglichkeit, ein Debian -Paket und ein lokales Paket -Repository zu erstellen

Dieser Artikel beschreibt eine einfache Möglichkeit, ein hausgemachtes Debian -Paket zu erstellen und es in ein lokales Paket -Repository aufzunehmen. Obwohl wir ein vorhandenes Debian/Ubuntu. Sobald unser Paket fertig ist, werden wir es in unser lokales Paket -Repository einbeziehen. Dieser Artikel zeigt einen sehr simplen Ansatz, kann jedoch in vielen verschiedenen Szenarien als Vorlage dienen.

In diesem Tutorial lernen Sie:

  • So erstellen Sie ein triviales Debian -Paket
  • So erstellen Sie ein lokales Debian -Repository
  • So fügen Sie das Repository zur Liste der Softwarequellen hinzu


Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Debian
Software Das Build-Ewesential-Paket
Andere Ein funktionierender Apache -Webserver und Stammberechtigungen
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Erstellen einer binären ausführbaren Datei

Das erste, was wir tun müssen, ist, ein einfaches C ++ - Programm zu erstellen, zu kompilieren und zu testen. Falls Sie ein einfaches C -Programm schreiben möchten, besuchen Sie stattdessen unser umfassendes Tutorial für C -Programmierung. Unser Programm wird nichts anderes tun, sondern nur „LinuxConfig“ drucken.org “auf dem Bildschirm. Hier ist der Code:

#Include int main () verwenden namespace std; Cout << "linuxconfig.org\n"; 
Kopieren

Speichern Sie den obigen Code als Linuxconfig.CC. Um das Programm zu kompilieren, brauchen wir das G++ Compiler, der durch das Build-Eesential-Paket bereitgestellt wird. Wir können es durch Ausführen installieren:

$ sudo apt-Get Installation Build-Escial

Um den Code zu kompilieren, verwenden wir den folgenden Linux -Befehl:

$ G ++ Linuxconfig.cc -o linuxconfig $ ./LinuxConfig LinuxConfig.Org

Alles sieht gut aus. Zu diesem Zeitpunkt sollten wir eine ausführbare Datei mit dem Namen "LinuxConfig" haben, die eine Zeichenfolge auf dem Bildschirm druckt.



Erstellen eines Debian -Pakets

Nachdem wir unser kleines Programm in Form einer ausführbaren Binärdatei bereit haben, können wir ein Debian -Paket erstellen. Um dies zu tun, verwenden wir die dpkg-deb Werkzeug. Zunächst müssen wir die Debian -Paketstruktur erstellen. Die einzigen Dateien, die zum Erstellen eines Debian -Pakets erforderlich sind, sind:

  • Debian/Kontrolle
  • Benutzerdefinierte Dateien, die Teil des Pakets sein (nicht erforderlich)

Erstellen Sie zuerst ein Verzeichnis namens namens Linuxconfig. Dieses Verzeichnis enthält alle erforderlichen Paketdateien:

$ mkdir linuxconfig

Erstellen Sie als Nächstes das Debian -Verzeichnis und die Kontrolldatei:

$ MKDIR Linuxconfig/Debian $ VI Linuxconfig/Debian/Kontrolle

In der Steuerdatei geben wir die folgenden Informationen ein:

Paket: LinuxConfig Version: 1.0 Abschnitt: benutzerdefinierte Priorität: Optionale Architektur: Alle essentiell: Keine Installationsgröße: 1024 Pflegemittel: LinuxConfig.Org Beschreibung: Drucken Sie Linuxconfig aus.Org auf dem Bildschirm

Großartig, das einzige, was fehlt, ist unser Linuxconfig -Programm. In der Linuxconfig Verzeichnis Wir erstellen einen Verzeichnisbaum, der den Pfad darstellt, in dem unser Programm im System installiert wird, und kopieren die
ausführbar in es:

$ mkdir -p linuxconfig/usr/bin/$ cp/path/to/linuxconfig linuxconfig/usr/bin/

Zu diesem Zeitpunkt sind wir bereit, das Paket zu erstellen:

$ dpkg-deb-build linuxconfig dpkg-deb: Erstellen von Paket 'LinuxConfig' in 'LinuxConfig.Deb '. $ ls linuxconfig Linuxconfig.Deb

Möglicherweise möchten Sie den Namen des Pakets so ändern, dass es die Programmversion und die Paketarchitektur enthält. Zum Beispiel:

$ MV LinuxConfig.Deb LinuxConfig-1.0_AMD64.Deb

Alles erledigt ! Unser Paket ist fertig ! (Hinweis: Dies ist nur ein Beispiel: Die Erstellung offizieller Pakete erfordert mehr Arbeit).

Einrichten eines lokalen Paket -Repositorys

Um ein lokales Paket -Repository zu erstellen, benötigen wir eine Arbeit. In diesem Fall werden wir die Verwendung von annehmen Apache mit Standardeinstellungen. Um Apache Webserver zu installieren, müssen wir nur ausführen:

$ sudo apt-Get Installieren Sie Apache2


Nach der Installation können wir zur Überprüfung des Webservers zur IP -Adresse des Geräts (oder zu "http: // localhost" navigieren, wenn Sie einen Browser auf der Maschine selbst ausführen), was in unserem Fall http: // ist 10.1.1.4. Wir sollten das sehen
berühmt Es klappt! Nachricht.

Die Webserver -Software wird ausgeführt, aber es wurden noch kein Inhalt hinzugefügt. Der Dokument Root des Standard Apache Virtualhost, Ist /var/www/html: Hier werden wir unser Repository erstellen.

Lassen Sie uns das Debian -Verzeichnis im Inneren erstellen /var/www/html und kopieren Sie die LinuxConfig-1.0_AMD64.Deb -Paket darin:

$ sudo mkdir/var/www/html/debian $ sudo cp/path/to/linuxconfig-1.0_AMD64.Deb/var/www/html/debian/

Der nächste Schritt besteht aus der Erzeugung einer Paketliste. Wir bewegen uns in die Debian Verzeichnis und verwenden Sie die DPKG-Scanpackages Dienstprogramm zur Erfüllung der Aufgabe. Möglicherweise müssen Sie die installieren dpkg-dev Paket für den Fall der DPKG-Scanpackages Befehl fehlt:

$ dpkg-scanpackages . | GZIP -c9> Pakete.GZ DPKG-Scanpackages: Info: schrieb 1 Einträge zur Ausgabe von Paketendatei.

Unser lokales Repository ist jetzt fertig.

Hinzufügen des Repositorys zu den Softwarequellen

An diesem Punkt müssen wir das bearbeiten, um unser Paket aus dem von uns erstellten lokalen Repository installieren zu können /etc/Apt/Quellen.Liste Datei fügen Sie den Eintrag relativ dazu hinzu (ändern Sie die IP -Adresse, um die Ihres Computers widerzuspiegeln) und
Synchronisieren Sie die Repositorys:

Echo "Deb [Trusted = Ja] http: // 10.1.1.4/Debian ./"| Tee -a/etc/apt/Quellen.Liste> /dev /null 

Stellen Sie sicher, dass Sie die oben genannten hinzufügen [Trusted = Ja] Um die folgende Fehlermeldung zu vermeiden:

 Release 'hat keine Release -Datei. N: Die Aktualisierung eines solchen Repositorys kann nicht sicher erfolgen und ist daher standardmäßig deaktiviert. 

Repositorys synchronisieren:

$ sudo APT-Get Update IGN: 1 http: // 10.1.1.4/Debian ./Inrelease IGN: 2 http: // 10.1.1.4/Debian ./Release IGN: 3 http: // 10.1.1.4/Debian ./Pakete IGN: 3 http: // 10.1.1.4/Debian ./Pakete IGN: 3 http: // 10.1.1.4/Debian ./Pakete erhalten: 3 http: // 10.1.1.4/Debian ./ Pakete [303 B]

Um unser Paket zu installieren, können wir jetzt das APT-Get-Tool verwenden:

$ sudo apt-Get Installieren Sie LinuxConfig-Lesen-Paket-Listen… Erstellen von Abhängigkeitsbaum-Lesen Status Informationen. Müssen 3174 b Archive bekommen. Nach diesem Betrieb werden 1.049 KB zusätzlicher Festplattenraum verwendet. WARNUNG: Die folgenden Pakete können nicht authentifiziert werden! LinuxConfig Installieren Sie diese Pakete ohne Überprüfung [y/n]? y

Ausführen:

$ LinuxConfig LinuxConfig.Org

Um das Paket aus dem System zu entfernen, führen Sie einfach aus:

$ sudo apt-get linuxconfig-Lesenspaketlisten entfernen Sie Informationen zum Erstellen von Abhängigkeitsbaum-Lesen Status. Nach diesem Betrieb wird 1049 KB -Scheibenraum befreit. Möchtest du fortfahren? [Y/n] y

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Mastering -Bash -Skriptschleifen beherrschen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Wie man mit der Woocommerce -REST -API mit Python arbeitet
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So erstellen Sie temporäre Dateien mit MKTemp unter Linux
  • So bauen Sie ein Paket mit dem Arch Linux Build -System wieder auf
  • So erstellen Sie eine Flatpak -Anwendung von Grund auf neu
  • So arbeiten Sie mit DNF -Paketgruppen