Przedmowa
Odpowiedzialność za maszynę oznacza dbanie o sprzęt, a także komponenty oprogramowania. Jak widać w codziennym życiu jako administrator systemu, znacznie lepiej jest zainstalować oprogramowanie jako pakiet oprogramowania niż kilka plików źródłowych. Zmniejsza to koszty właściwego utrzymania systemu.
Pakiety dostępne od preferowanego dystrybutora są zatwierdzone i nadzorowane przez opiekuna pakietu. Przetestował oprogramowanie i zapewnia, że pasuje do innych pakietów oprogramowania dostępne w dystrybucji. Ponadto pakiet jest podpisany z klawiszem GPG od opiekunki pakietu. Gwarantuje to integralność pakietu i pokazuje, że pakiet pochodzi z zaufanego źródła.
Format pakietu zależy od dystrybucji Linux. Wybrane formaty są następujące:
Deb
Pakiety używane w: Debian GNU/Linux, Ubuntu, Armbian, Linux Mint, Knoppix
RPM
Pakiety używane w: Redhat, Fedora, Centos, OpenSuse
TGZ i TXZ
Pakiety używane w: Slackware
smoła.xz
Pakiety używane w: Arch Linux
Ten dokument wyjaśnia, jak krótko zbudować pakiet dla Debian GNU/Linux. Aby uzyskać szczegółowe informacje na temat formatu pakietu Debiana i narzędzi do utrzymania systemu Linux opartego na „Deb”, możesz sprawdzić książkę zarządzania pakietami Debian [DPMB], aby zbudować pakiety dla Debian GNU/Linux Te dokumenty są niezbędne:
Pakiet, z którym będziemy pracować, nazywa się „Helloworld” i ma numer wersji 0.1. Do celów demonstracyjnych po prostu zawiera pojedynczy skrypt Pythona, który wyświetla słynną wiadomość „Witaj, świat!”:
#!/usr/bin/pythonWymagania
Jako krok 1, zapoznaj się z kluczem GPG. Później klucz będzie potrzebny do podpisania pakietu. Należy pamiętać, że pakiety niepodpisane są niegodne.
Jeśli nie masz jeszcze klucza GPG. Możesz wykonać trzy kroki poniżej. Pierwsze polecenie generuje nowy klucz, drugi eksportuje nowy klucz do osobnego pliku, a trzeci dodaje klucz do twojego osobistego lądowania.
$ GPG-Gen-keyPodczas tworzenia upewnij się, że podana nazwa _Teour Name_ jest poprawna. Często używa kombinacji imienia i nazwiska. Ta nazwa będzie musiała być dokładnie taka sama w pakiecie, a następnie podczas tworzenia pliku „sterowania” pakietu Debiana. Aby uzyskać więcej informacji na temat GPG, przyjrzyj się Podręcznika Prywatności GNU [GPH].
Aby zbudować pakiet Debian z kodem źródłowym, w systemie wymagane są następujące pakiety oprogramowania:
Jako „root” użytkownika możesz zainstalować je za pomocą następującego polecenia:
# apt-get instaluj kompilację Autoconf Automake Autotools-dev dh-make devhelper devscripts fakeroot xutils lintian pBuilderMusimy przygotować katalog do zbudowania pakietu. Utwórz katalog, aby przygotować środowisko, w którym zbudujemy pakiet:
$ mkdir -p ~./Build/Helloworld/0.1Skopiuj „TAR.GZ „skompresowane archiwum w katalogu:
$ CP Helloworld-0.1.smoła.GZ ~./Build/Helloworld/0.1Zmień się w katalogu i wyodrębnij pakiet:
$ cd ~./Build/Helloworld/0.1Teraz katalog zawiera zarówno kod źródłowy w osobnym katalogu, jak i skompresowane archiwum:
~/Build/Helloworld/0.1 $ lsDebianizacja
W tym momencie dodamy pliki specyficzne do pakietu Debiana. Dlatego ten krok nazywa się _debianization_ oprogramowania. Odbywa się to w kilku pojedynczych krokach.
Zmień się w katalogu, który utrzymuje cały kod źródłowy pakietu. W naszym przykładzie pakiet zawiera plik „Helloworld.Py ', tylko:
~ $ CD Build/Helloworld/0.1/Helloworld-0.1Dodajmy pliki specyficzne do pakietu Debiana. Narzędzie „dh_make” wchodzi w grę. Przełącznik '-E' używa podanego adresu jako adresu e-mail w polu „opiekuna” pliku „debian/control”. Zamiast tego budowanie pakietu użyj własnego adresu e -mail. Pamiętaj, aby użyć tego samego adresu e -mail, który odpowiada Twojemu kluczowi GPG.
Przełącznik '-f' używa danego pliku jako oryginalnego archiwum źródłowego i pomija kopiowanie bieżącego drzewa programu do „programu.orig '.
~/Build/Helloworld/0.1/Helloworld-0.1 $ dh_make -e [email protected] -f… /helloworld -0.1.smoła.GZW monicie proszeni o wybranie typu pakietu, który należy utworzyć. Wybrać _single binary_pee „s”.
Rodzaj pakietu: pojedynczy binarny, binarny, wielokrotny binarny, biblioteka, moduł jądra, łatka jądra?Powoduje to katalog o nazwie „Debian”:
~/Build/Helloworld/0.1/Helloworld-0.1 $ lsTen katalog zawiera wszystkie pliki specyficzne dla pakietu.
Plik „debian/control” utrzymuje potrzebne zależności _ do budowy_ pakiet. Używając polecenia 'dpkg -depcheck -d ./skonfiguruj „Otrzymujesz listę ze wszystkimi wymaganymi pakietami. W naszym przypadku nie ma kolejnego pakietu, ponieważ Python jest interpretowanym językiem.
Następnie musimy edytować plik „Debian/Control” i dodać wartości specyficzne dla pakietu. W naszym przykładzie wygląda następująco:
Źródło: HelloworldPlik „Debian/Copyright” zawiera informacje o licencji dla pakietu oprogramowania. Jest przygotowany do wydania za pośrednictwem Licencji Publicznej GNU 2 (GPLV2). W naszym przykładzie wygląda następująco:
Format: http: // www.Debian.Org/Doc/Packaging-Manuals/Copyright-Format/1.0/Po informacji o prawach autorskich plik „Debian/Changelog” musi zostać dostosowany. W naszym przykładzie dodajemy informacje „początkowe wydanie”.
Helloworld (0.1-1) niestabilne; pilność = niskaTo wszystko, czego potrzebujemy do tej pory - teraz możemy zbudować pakiet, wreszcie.
Zbuduj pakiet
Aby zbudować pakiet, musimy przenieść jeden katalog i uruchomić następujące polecenie:
~/Build/Helloworld/0.1/Helloworld-0.1 $ DPKG -BUILDPACKAGE -RFAKEROOTOpcja „-rfakeroot” umożliwia „DPKG-BUILDPACKAGE” uruchamianie poleceń jako uprzywilejowany użytkownik za pomocą polecenia „Fakeroot”. Jest to konieczne, aby przygotować pakiet i utworzyć pliki i katalogi.
Powyższe polecenie powoduje dłuższą listę komunikatów wyjściowych (pokazane tutaj w środowisku języka niemieckiego):
Gratulacje - udało ci się zbudować pakiet Debian - tak! Teraz przyjrzyjmy się pakiecie. Tutaj wchodzi w grę „Lintian”. To narzędzie weryfikuje pakiet w celu znalezienia naruszeń w stosunku do surowych reguł, które pakiety Debian muszą spełnić.
Aby uruchomić testy, wpisz następujące polecenie:
Lintian Helloworld_0.1-1_AMD64.DebNarzędzie nie znajduje naruszeń reguł, ale także błędy pisowni i złe znaki. Switch „-pedantic” prosi „Lintian” o znacznie bardziej krytyczny niż zwykle. Jak widać poniżej „Lintian” jest trochę zrzędliwy i odkrył trzy ostrzeżenia i jeden błąd.
Z wyjątkiem pierwszego ostrzeżenia możemy łatwo sprawić, że „Lintian” jest zadowolony. Ostrzeżenie „Nowe pakiet-okup-close-itp-bug” oznacza, że nie ma raportu o błędach przeciwko pakietowi ITP (ITP oznacza _intended to pakiet_). W przypadku regularnego pakietu debiana należy wysłać raport BugTracker w celu pakietu ITP, aby powiadomić innych, że zamierzasz zapakować to oprogramowanie.
Plik „Readme.Debian 'ma na celu przechowywanie dodatkowych notatek dotyczących tego pakietu. „dh_make” utworzył dla nas ten plik:
Helloworld dla DebianaW naszym przykładzie nie mamy dodatkowych informacji, więc możemy usunąć plik.
To ostrzeżenie jest podniesione, ponieważ dłuższy opis naszego pakietu w pliku „Debian/Control” zaczyna się od więcej niż jednej przestrzeni. Gdy tylko usuniemy pojedynczą przestrzeń, ostrzeżenie zniknie.
Każdy pakiet wymaga zarówno krótkiego, jak i dłuższego opisu w „Debian/Control”. Ten błąd jest podniesiony, ponieważ oba opisy są identyczne. Gdy tylko przedłużyliśmy dłuższy opis, błąd zniknął.
Linki i referencje
- [DDR] Andreas Barth, Adam Di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: Referencja Debiana Developer
- [DNMG] Josip Rodin, Osamu Aoki: przewodnik Debiana New Cechence
- [DPMB] Axel Beckert, Frank Hofmann: The Debian Pack Management Book
- [DPM] Podręcznik polityki Debiana
- [DPT] The Debian Packaging Tutorial
- [GPH] Podręcznik prywatności GNU
- [Lushpaipackage] Alex Lushpai: Jak stworzyć pakiet Debian ze źródła
Podziękowanie
Autor chciałby podziękować Axel Beckert i Gerold Rupprecht za ich wsparcie i krytyków, przygotowując ten artykuł.