linuxwiki.pl>PiotrekD.bot m (Szablon:T jest wycofywany z użycia) |
|||
Linia 1: | Linia 1: | ||
+ | '''Runlevel''' – poziom uruchomienia [[GNU/Linux|Linuksa]]. Każdy runlevel ma przypisane odpowiednie demony, które kończą działanie po przełączeniu na inny poziom. |
||
− | Tworzenie paczki [[DEB]] należy zacząć od pobrania programów niezbędnych do zbudowania jakiegokolwiek programu, a konkretnie kompilatora. Potrzebny będzie też zestaw programów debhelper, ułatwiających tworzenie paczki. |
||
+ | Niektóre runlevele mają przypisane stałe wartości: |
||
− | W tym celu wydajemy polecenie: |
||
+ | * 0 – zamykanie systemu; |
||
− | {{Terminal|# apt-get install build-essential dh-make devscripts}} |
||
+ | * 1 – tryb administratora (roota); |
||
+ | * 6 – restart systemu. |
||
+ | Poziomy od 2 do 5 to poziomy służące do normalnej pracy. W poszczególnych dystrybucjach są one inaczej używane. Przykładowo, wydzielony runlevel do pracy w trybie tekstowym. W [[Debian]]ie użytkownik może ustawić, do czego mają służyć runlevele od 2 do 5. |
||
− | Po zainstalowaniu kompilatorów ściągamy program, który chcemy spakować. (''Jako przykład posłuży [[ncmpcpp]], kontroler [[mpd]] napisany z użyciem [[ncurses]]'') |
||
⚫ | |||
− | === 1. dh_make === |
||
− | Program dh_make został stworzony, żeby ułatwić opiekunom tworzenie nowych paczek. Generuje on katalog <code>debian/</code>, który będzie konieczny do zbudowania paczek. Po rozpakowaniu programu należy wejść do jego źródeł i urchomić dh_make. |
||
− | Dane do przykładu: |
||
− | * lokalizacja oryginalnego źródła: ~/ncmpcpp-0.5.tar.bz2 |
||
− | * lokalizacja rozpakowanych źródeł: ~/ncmpcpp-0.5 |
||
− | Przykład: |
||
− | {{Terminal|rafal@laptop:~/ncmpcpp-0.5$ dh_make -f ../ncmpcpp-0.5.tar.bz2 -e ad@res.pl |
||
− | |||
− | Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? |
||
− | [s/i/m/l/k/n/b] s |
||
− | |||
− | Maintainer name : Jaś Nijaki |
||
− | Email-Address : ad@res.pl |
||
− | Date : Sat, 06 Feb 2010 21:20:07 +0100 |
||
− | Package Name : ncmpcpp |
||
− | Version : 0.5 |
||
− | License : blank |
||
− | Using dpatch : no |
||
− | Using quilt : no |
||
− | Type of Package : Single |
||
− | Hit <enter> to confirm: |
||
− | Done. Please edit the files in the debian/ subdirectory now. ncmpcpp |
||
− | uses a configure script, so you probably don't have to edit the Makefiles. |
||
− | }} |
||
− | ''Uwaga'': dh_make zapyta o typ paczki. Zwykle jest to single (s). |
||
− | W tym momencie mamy folder debian, który trzeba opisać. Następnym krokiem będzię... |
||
− | |||
− | === 2. Opisanie paczki === |
||
− | Wejdź do katalogu debian/. Znajduje się tu kilkanaście plików, część z końcówką .ex, która oznacza, że plik jest tylko przykładem. Te pliki są potrzebne np. do tworzenia skryptów init.d, stron manuala itp. |
||
− | |||
− | Otwórz plik <code>control</code>. To, można rzec, najważniejszy plik w tym katalogu. Definiuje on nazwę, wersję, autora i wiele innych parametrów, które trzeba ustawić przy tworzeniu paczki. Ale po kolei. |
||
− | |||
− | Pierwszy "blok" to informacje o paczce źródłowej. Z niej tworzona jest paczka binarna. <code>Source:</code> definiuje jej nazwę. <code>Section:</code> dzieli pakiety na kategorie. Może być to np. ''net'' albo ''ruby''. Dokładnie informacje znajdziesz na [http://packages.debian.org/ tej stronie]. Priority przyjmuje kilka wartości: |
||
− | * ''extra'' – pakiety dodatkowe, |
||
− | * ''optional'' – pakiety niewymagane, aczkolwiek przydatne (np. [[Firefox]]), |
||
− | * ''standard'' – pakiety, które zwykle umieszcza się na każdym systemie (np. [[X]]), |
||
− | * ''important'' – pakiety, które powinny być na każdym systemie, |
||
− | * ''required'' – pakiety, bez których system nie uruchomi się (np. [[dpkg]]). |
||
− | Dla pakietu ncmpcpp nadaje się ''optionanal''. Sekcję ustawmy na ''sound''. |
||
− | |||
− | <code>Maintainer:</code> to opiekun pakietu. <code>Build-Depends:</code> to pakiety wymagane do '''zbudowania''' pakietu. <code>Standards-Version:</code> definiują wersję Polityki Debiana użytą w tym pakiecie. <code>Homepage</code> ustaw na stronę domową programu (dla ncmpcpp to [http://unkart.ovh.org/ncmpcpp http://unkart.ovh.org/ncmpcpp]). |
||
− | |||
− | Niżej znajduje się blok z informacjami. Package: i Architecture: nas nie interesują. Schodzimy do Description. Wpisz tam krótki opis programu, np. (''ncurses-based mpd controller''). Linię poniżej opisz dokładniej program, pamiętając o spacji wiodącej, inaczej opis zostanie uznany za komendy. |
||
− | |||
− | Sprawdź teraz, jakie pliki dokumentacyjne zawiera paczka. Dopisz je linia pod linią do pliku docs. |
||
− | |||
− | Plik copyright zawiera informacje o licencji. Jak publikujesz paczkę, nie powinno się go pomijać. |
||
− | |||
− | Gdy skończysz opisywać program, możesz przejść do konfiguracji skryptów ./configure i make. |
||
− | |||
− | === 3. configure i Makefile === |
||
− | Ponieważ dh jest na tyle sprytne, żeby sprawdzić, czy program się kompiluje z autotools (co każdy większy program robi), uruchomi automatycznie ./configure, następnie make i make install. Domyślnie configure uruchamia się tak: |
||
− | {{Terminal|$ ./configure}} |
||
− | A jeżeli chcesz przekazać parametry? Przykład: |
||
− | {{Terminal|$ ./configure --with-clock --enable-outputs}} |
||
− | Wejdź do pliku debian/rules (ma on składnię Makefile) i ustaw target override_dh_auto_configure. Przykład: |
||
− | {{Terminal| #!/usr/bin/make -f |
||
− | %: |
||
− | dh $@ |
||
− | |||
− | override_dh_auto_configure: |
||
− | ./configure --with-clock --enable-outputs}} |
||
− | |||
− | === 4. dpkg-buildpackage === |
||
− | Przechodzimy do ostatniego etapu. Jeżeli dotąd nie było żadnych błędów, wszystko wykona się cichutko i stworzy paczki. Krótka lista sprawdzająca: |
||
− | * czy mam ustawiony plik <code>control</code>? |
||
− | * czy zainstalowałem i ustaliłem biblioteki potrzebne do budowy paczki? |
||
− | * czy mam wszystkie narzędzia? |
||
− | * czy mam wystarczającą ilość miejsca na dysku? |
||
− | * czy pamiętam hasło |
||
− | |||
− | Jeżeli tak, wpisz: |
||
− | {{Terminal|$ dpkg-buildpackage}} |
||
− | I tu zaczyna się magia. Debhelper (w skrócie) sprawdza zależności, uruchamia configure, kompiluje, instaluje do folderu tymczasowego, kopiuje dokumentacje, dokłada plik control, pakuje do pliku deb i podpisuje kluczem gpg. |
||
− | |||
− | Jeżeli wszystko pójdzie bez błędów, w katalogu wyżej (cd ..) otrzymasz kilka plików: paczkę .deb, podpis .key i plik ze zmianami. Do instalacji lokalnej wystarczy to pierwsze. |
||
− | |||
− | === Dodatek: kompilacja skrośna === |
||
− | Kompilacja skrośna, nazywana cross-compilation to funkcja, która pozwala na kompilację na inną architekturę. dpkg-buildpackage niesamowicie trudno się wtedy wywołuje, bo aż z parametrem -a''nazwa_architektury''. Zakładam, że masz kompilator dla tej architektury. |
||
− | |||
− | === Dodatek 2: Co później? === |
||
− | * ''Poradnik dla nowych opiekunów pakietów Debiana'' – [http://www.debian.org/doc/manuals/maint-guide/ tutaj] |
||
− | * [[man]] dh_make, dpkg-buildpakage, dh |
||
− | * ''Kącik Deweloperów Debiana'' – [http://www.debian.org/devel/ tutaj] |
||
− | |||
− | === Podsumowanie === |
||
− | Kompilacja paczki naprawdę nie jest trudna. W projekcie Debian uczestniczy masa ludzi, którzy robią podobna czynności, gdy pojawi się nowa wersja. To tyle w kwestii podsumowania. |
||
− | Powodzenia przy kompilacji programów! |
||
− | |||
⚫ |
Wersja z 14:08, 28 lut 2015
Runlevel – poziom uruchomienia Linuksa. Każdy runlevel ma przypisane odpowiednie demony, które kończą działanie po przełączeniu na inny poziom.
Niektóre runlevele mają przypisane stałe wartości:
- 0 – zamykanie systemu;
- 1 – tryb administratora (roota);
- 6 – restart systemu.
Poziomy od 2 do 5 to poziomy służące do normalnej pracy. W poszczególnych dystrybucjach są one inaczej używane. Przykładowo, wydzielony runlevel do pracy w trybie tekstowym. W Debianie użytkownik może ustawić, do czego mają służyć runlevele od 2 do 5.