Wyszukiwanie w witrynie

Jak budować pakiety ze źródła za pomocą CheckInstall


Jakiś czas temu pisaliśmy o narzędziu o nazwie Fpm, które pomaga w łatwym tworzeniu pakietów dla wielu platform Linux. Dzisiaj omówimy CheckInstall, który jest również używany do budowania pakietów dla Linuksa z kodu źródłowego.

Krótkie wprowadzenie do CheckInstall

Zwykle instalujemy pakiety za pomocą menedżerów pakietów dystrybucji. Jeśli jednak aplikacja, którą chcesz zainstalować, nie jest dostępna w twoich repozytoriach dystrybucyjnych, nie masz innego wyjścia, jak tylko ręcznie skompilować i zainstalować z kodu źródłowego.

Kompilowanie i instalowanie aplikacji z kodu źródłowego jest nieco trudne dla niektórych osób, zwłaszcza początkujących. Tutaj z pomocą przychodzą programy takie jak FPM i CheckInstall.

CheckInstall to program, który kompiluje program z kodu źródłowego i tworzy natywny pakiet dla Twojej dystrybucji Linuksa. Abyś mógł zainstalować pakiety za pomocą systemu zarządzania pakietami swojej dystrybucji (dpkg, obr./min lub installpkg).

Obecnie CheckInstall tworzy natywne pakiety dla systemów opartych na DEB, systemów opartych na RPM i Slackware. W tym krótkim samouczku omówimy, jak budować pakiety ze źródeł za pomocą programu CheckInstall.

Zainstaluj CheckInstall w systemie Linux

CheckInstall jest dostępny w domyślnych repozytoriach większości dystrybucji Linuksa. Możesz więc zainstalować go za pomocą menedżerów pakietów.

Powiedzmy na przykład: W systemach opartych na Debianie możesz go zainstalować za pomocą następującego polecenia:

sudo apt-get install checkinstall

W SUSE/openSUSE:

sudo zypper install checkinstall

W CentOS, RHEL, Fedorze:

Pobierz i zainstaluj plik RPM CheckInstall z tego linku.

wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm

Kompiluj pakiety ze źródła za pomocą CheckInstall

Oto proste kroki, aby utworzyć pakiet DEB programu „hello”. Przetestowałem następujące kroki w Ubuntu 16.04 LTS.

Najpierw pobierz archiwum tar programu „hello”.

wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz

Wyodrębnij archiwum tar za pomocą polecenia:

tar -zxvf hello-2.10.tar.gz

Przejdź do katalogu, do którego rozpakowałeś plik hello tar.

cd hello-2.10/

Uruchom kolejno następujące polecenia, aby je skompilować.

./configure
make

Teraz zamiast wpisywać polecenie "make install" w celu zainstalowania programu, wpisujemy następujące polecenie:

sudo checkinstall --install=no

To polecenie utworzy pakiet .deb, ale go nie zainstaluje. Naciśnij T, aby utworzyć katalog dokumentacji pakietu o nazwie "doc-pak".

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
 This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist. 
Should I create a default set of package docs? [y]: y

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>> Simple Hello Program ## Type your Program name and hit ENTER key.
>>

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 - Maintainer: [ root@ubuntuserver ]
1 - Summary: [ Simple Hello Program ]
2 - Name: [ hello ]
3 - Version: [ 2.10 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ hello-2.10 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ hello ]
12 - Conflicts: [ ]
13 - Replaces: [ ]

Enter a number to change any of them or press ENTER to continue: ## Hit ENTER key

[...]

Building file list...OK

Building Debian package...OK

NOTE: The package will not be installed

Erasing temporary files...OK

Deleting temp dir...OK


**********************************************************************

Done. The new package has been saved to

/home/sk/hello-2.10/hello_2.10-1_amd64.deb
 You can install it in your system anytime using:

dpkg -i hello_2.10-1_amd64.deb

**********************************************************************

Teraz możesz zainstalować nowo utworzony pakiet .deb za pomocą menedżera pakietów dpkg:

sudo dpkg -i hello_2.10-1_amd64.deb

Jeśli wykonasz powyższe polecenie bez flagi "--install=no", automatycznie utworzy pakiet deb i zainstaluje go w twoim systemie.

sudo checkinstall

Przykładowe dane wyjściowe:

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
 This software is released under the GNU GPL.

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 - Maintainer: [ root@ubuntuserver ]
1 - Summary: [ Simple Hello Program ]
2 - Name: [ hello ]
3 - Version: [ 2.10 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ hello-2.10 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ hello ]
12 - Conflicts: [ ]
13 - Replaces: [ ]

Enter a number to change any of them or press ENTER to continue: ##Press ENTER

[...]

Installing Debian package...OK

Erasing temporary files...OK

Writing backup package...OK
OK

Deleting temp dir...OK


**********************************************************************

Done. The new package has been installed and saved to

/home/sk/hello-2.10/hello_2.10-1_amd64.deb

You can remove it from your system anytime using:

dpkg -r hello

**********************************************************************

To polecenie utworzy plik .deb i zainstaluje go automatycznie w systemie. Możesz usunąć pakiet instalacyjny w dowolnym momencie za pomocą polecenia:

sudo dpkg -r hello

CheckInstall automatycznie utworzy pakiet .rpm lub .deb, w zależności od typ używanej obecnie dystrybucji Linuksa. Jeśli chcesz utworzyć pakiet .rpm, po prostu wykonaj powyższe kroki w dowolnym systemie opartym na RPM. W przypadku pakietów Slackware wykonaj tę czynność w systemie Slackware.

Więcej szczegółów znajdziesz na stronach podręcznika:

man checkinstall

Możesz też sprawdzić sekcję pomocy.

checkinstall --help

Powiązana lektura:

  • Jak konwertować pakiety Linux za pomocą programu Alien
  • Jak zbudować pakiety Debiana ze źródła

Zasób:

  • Sprawdź witrynę internetową

Powiązane artykuły