[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ dalej ]
W świecie wolnego oprogramowania jest rzeczą powszechną studiować kod źródłowy programów, a nawet dokonywać w nim zmian, aby wyeliminować błędy. Aby to zrobić, musisz pobrać źródło programu. APT dostarcza Ci łatwego sposobu uzyskiwania kodów źródłowych wielu programów zawartych w dystrybucji, włączając w to wszystkie pliki potrzebne do stworzenia pakietu .deb dla danego programu.
Innym powszechnym zastosowaniem źródeł Debiana jest przystosowanie nowszej wersji programu, pochodzącej np. z niestabilnej dystrybucji, aby użyć go w wersji stabilnej. Zamiast pakietu stabilnego można skompilować źródła i wygenerować pakiety .deb z zależnościami przystosowanymi do pakietów dostępnych w tej dystrybucji.
Aby to osiągnąć, wpis ze słowem deb-src na początku linii w Twoim pliku /etc/apt/sources.list powinien wskazywać na archiwum niestabilne. Oczywiście powinien on być także włączony (tzn. odkomentowany). Zobacz sekcję Plik /etc/apt/sources.list, Rozdział 2.1, aby dowiedzieć się więcej szczegółów.
Aby pobrać pakiet źródłowy, użyjemy następującej komendy:
$ apt-get source pakiet
Komenda ta pobierze trzy pliki: .orig.tar.gz, .dsc i .diff.gz. W przypadku pakietów tworzonych specjalnie dla Debiana nie będzie pobierany ostatni plik, a pierwszy zwykle nie ma w nazwie słowa "orig".
Plik .dsc jest używany przez program dpkg-source do rozpakowania źródeł pakietu w katalogu pakiet-wersja. Wewnątrz każdego pobranego pakietu istnieje katalog debian/, zawierający pliki niezbędne do stworzenia pakietu .deb.
Aby automatycznie zbudować pakiet w czasie pobierania jego źródeł, po prostu dodaj do komendy opcję -b tak, jak pokazano to poniżej:
$ apt-get -b source pakiet
Jeśli nie zdecydowałeś się tworzyć pakietu .deb w czasie pobierania jego źródeł, możesz zrobić to później za pomocą polecenia:
$ dpkg-buildpackage -rfakeroot -uc -b
uruchomionego wewnątrz katalogu, który został utworzony dla pakietu po jego pobraniu. Aby zainstalować pakiet zbudowany przy pomocy powyższej komendy, musisz użyć bezpośrednio programu dpkg:
# dpkg -i file.deb
Istnieje różnica pomiędzy metodą source programu
apt-get
, a jego innymi metodami. Metoda source może
być używana przez zwykłych użytkowników, nie posiadających uprawnień roota.
Pliki są pobierane do katalogu z którego wywołano komendę apt-get source
pakiet.
Zwykle specyficzne pliki nagłówkowe i biblioteki współdzielone muszą być obecne, aby można było skompilować pakiet źródłowy. Wszystkie pakiety źródłowe mają pole w plikach kontrolujących, które nazywa się 'Build-Depends:'. Pole te wskazuje, które dodatkowe pakiety są niezbędne, aby można było zbudować pakiet z jego źródeł.
APT jest wyposażony w łatwy sposób pobierania tych pakietów. Po prostu uruchom komendę apt-get build-dep pakiet, gdzie `pakiet' jest nazwą pakietu, który zamierzasz zbudować. Na przykład:
# apt-get build-dep gmc Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev libgpmg1-dev 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded. Need to get 1069kB of archives. After unpacking 3514kB will be used. Do you want to continue? [Y/n]
Pakiety, które zostaną zainstalowane są pakietami potrzebnymi do prawidłowego
zbudowania pakietu gmc
. Bardzo ważną rzeczą do zauważenia jest
fakt, że komenda nie szuka pakietu ze źródłami programu, który ma być
skompilowany. Dlatego musisz wcześniej uruchomić polecenie apt-get
source, aby osobno je pobrać.
Jeśli chcesz sprawdzić, które pakiety są potrzebne do zbudowania powyższej paczki, możesz użyć wariantu polecenia apt-cache show (zobacz sekcję Pobieranie informacji o pakietach, Część 5), pokazującego oprócz innych informacji także linię Build-Depends z listą pakietów niezbędnych do zbudowania pakietu.
# apt-cache showsrc package
[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ dalej ]
APT HOWTO
1.8.5 - lipiec 2003kov@debian.org
ptecza@debianusers.pl