Linux Wiki
 
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]]'')
 
   
 
[[Kategoria:Jądro]]
=== 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!
 
 
[[Kategoria:Poradniki]]
 

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.