Tworzenie paczki deb w Ubuntu
Opublikowany 6 grudzień, 2007 w Ubuntu Tagi: Linux, tips & tricks, UbuntuJak stworzyć ze źródeł paczkę .deb w Ubuntu ? Sprawa jest wręcz banalnie prosta.
Instalowanie czystych źródeł w systemie może narobić nam trochę bałaganu. Aby temu zapobiec, zamiast instalować z czystych źródeł, zrobimy paczkę .deb, którą potem zainstalujemy. Posłużymy się programem checkinstall. Najpierw go zainstalujemy:
sudo apt-get install checkinstall
Następnie wykonujemy standardową procedurę mającą na celu kompilację.
Sprawdzamy, czy środowisko w którym próbujemy zainstalować dany program ma potrzebne biblioteki:
./configure --prefix=/usr
przetwarzamy plik reguł Makefile:
make
A teraz budujemy paczkę ale jej nie instalujemy (zamiast “make install”).
checkinstall -D --install=no
Zamiast parametru “D” możemy się posłużyć “–type=debian. Generalnie na jedno wyjdzie gdyż oba te parametry mówią skryptowi, że chcemy aby została utworzona paczka dla debiana. Jeżeli byśmy chcieli utworzyć inną paczkę, to do wyboru mamy:
-t,–type=
Choose packaging system
-S Build a Slackware package
-R Build a RPM package
-D Build a Debian package
Teraz, w katalogu ze źródłami powinna pojawić się paczka .deb. Aby ją zainstalować posłuż się dpkg. Albo po prostu na nią kliknij jeżeli jesteś w środowisku graficznym.
Instalacja
dpkg -i <nazwa paczki .deb>
Usuwanie:
dpkg -r <nazwa paczki .deb>
Inne parametry checkinstall:
*Scripting options*-y, --default Accept default answers to all questions--pkgname=<name> Set name--pkgversion=<version> Set version
-A, --arch, --pkgarch=<arch> Set architecture
--pkgrelease=<release> Set release
--pkglicense=<license> Set license
--pkggroup=<group> Set software group
--pkgsource=<source> Set source location
--pkgaltsource=<altsource> Set alternate source location
--pakdir=<directory> The new package will be saved here
--maintainer=<email addr> The package maintainer (.deb)
--provides=<list> Features provided by this package (.rpm)
--rpmflags=<flags> Pass this flags to the rpm installer
--dpkgflags=<flags> Pass this flags to the dpkg installer
--spec=<path> .spec file location
--nodoc Do not include documentacion files
*Info display options*
-d<0|1|2> Set debug level
-si Run an interactive install command
--showinstall=<yes|no> Toggle interactive install command
-ss Run an interactive Slackware installation script
--showslack=<yes|no> Toggle interactive Slackware installation script
--exclude=<file|dir[,...]> Exclude files/directtories from the package
*Package tuning options*
--autodoinst=<yes|no> Toggle the creation of a doinst.sh script
--strip=<yes|no> Strip any ELF binaries found inside the package
--stripso=<yes|no> Strip any ELF binary libraries (.so files)
--gzman=<yes|no> Compress any man pages found inside the package
--docdir=<path> Where to put documentation files
--umask=<mask> Set the umask value
--newslack Use the new (8.1+) Slackware description format
("--newslack" implies "-S")
*Cleanup options*
--deldoc=<yes|no> Delete doc-pak upon termination
--deldesc=<yes|no> Delete description-pak upon termination
--delspec=<yes|no> Delete spec file upon termination
--bk Backup any overwritten files
--backup=<yes|no> Toggle backup
*About CheckInstall*
--help, -h Show this message
--copyright Show Copyright information
--version Show version information
Najświeższe komentarze
|
Tagi:Archiwa |
|||













Dzięki, przydało się
Nie radzę sobie…
Pobrałem plik laparola-6.1.tar.gz
Co mam dalej zrobić, żeby stworzyć z niego paczkę .deb?
musisz ją rozpakować, przejść do nowo utworzonego katalogu i uruchomić powyższe polecenia…
./configure –prefix=/usr
make
checkinstall -D –install=no
A jak przejść z katalogu do terminala, aby uruchomić te polecenia?
Wydaje mi się, że w starszej wersji Ubuntu był coś takiego, teraz nie mogę znaleźć.
teknon
najlepiej zrobić wszystko od razu z poziomu konsoli…
rozpakowujemy paczkę: tar -xzvf laparola-6.1.tar.gz
przechodzimy do katalogu z rozpakowaną paczką: cd laparola-6.1
i dalej już wiesz co robić
Znów problem.
Po rozpakowaniu, system nie znajduje katalogu wskazanego. Zajrzałem do “home” i go tam rzeczywiście nie ma. Rozpakowane pliki są “luzem”.
Oto wpis, który pojawił się w konsoli:
xkrzysztof@xkrzysztof-laptop:~$ tar -xzvf laparola-6.1.tar.gz
bin/
bin/laparola
bin/DatiNR/
bin/DatiNR/bibbia.bin
bin/DatiNR/bibbia.ind
bin/DatiNR/nocc.ind
bin/DatiNR/nvoltep.bin
bin/DatiNR/nvolter.bin
bin/DatiNR/pararad.bin
bin/DatiNR/parole.ind
bin/DatiNR/parole.lst
bin/DatiNR/posti.bin
bin/DatiNR/puntegg.lst
bin/DatiNR/radapar.bin
bin/DatiNR/radici.ind
bin/DatiNR/radici.lst
bin/DatiNR/titoli.bin
bin/DatiNR/vincinl.bin
copying
copying italiano
laparola
leggimi
lib/
lib/libborqt-6.9.0-qt2.3.so
xkrzysztof@xkrzysztof-laptop:~$ cd laparola-6.1
bash: cd: laparola-6.1: No such file or directory
teknon
Ok.
Zrobiłem “ręcznie” wskazany katalog i do niego przeszedłem, ale potem pojawił sie następny błąd.
Oto wpis
root@xkrzysztof-laptop:/home/xkrzysztof# cd laparola-6.1
root@xkrzysztof-laptop:/home/xkrzysztof/laparola-6.1# ./configure –prefix=/usr
bash: ./configure: No such file or directory
root@xkrzysztof-laptop:/home/xkrzysztof/laparola-6.1#
Ten sam problem pojawił się gdy wyszedłęm z konta root.
xkrzysztof@xkrzysztof-laptop:~/laparola-6.1$ ./configure –prefix=/usr
bash: ./configure: No such file or directory
W folderze powinien się znajdować plik o nazwie “INSTALL”… zajrzyj do niego. Może na przykład zamiast “configure” przechodzi się od razu do “make” albo jest inny sposób kompilacji.
O.K.
Dzięki, instalacja jest opisana w pliku leggimi (readme)
Pozdrawiam
teknon
Jakoś nie idzie mi tworzenie tej paczki .deb. Chcę stworzyć paczkę .deb dla najnowszej wersji GIMP-a. Plik gimp-2.6.0.tar.bz2 rozpakowałem przy pomocy “zaklęcia” tar -xvjf plik.tar.bz2. W wyniku tego utworzył mi się katalog gimp-2.6.0. Następnie przy pomocy “zaklęcia” cd gimo-2.6.0 przeszedełem do tego nowo utworzonego katalgu. I tam wydałem polecenie “checkinstall -D –install=no”. W wyniku tego w konsoli pojawił mi się następujący poniższy komunikat i paczka .deb u mnie się nie pojawiła, niestety.
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@xxxx ]
1 - Summary: [ gimp-2.6.0 ]
2 - Name: [ gimp ]
3 - Version: [ 2.6.0 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ gimp-2.6.0 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
Enter a number to change any of them or press ENTER to continue:
Installing with make install…
========================= Installation results ===========================
make: *** Brak reguł do wykonania obiektu `install’. Stop.
**** Installation failed. Aborting package creation.
Cleaning up…OK
Bye.
Od razu po przejściu do katalogu dałeś “checkinstall -D –install=no”?
W takim razie nic dziwnego, że Ci się paczka niw tworzy… najpierw ./configure i make… “checkinstall -D –install=no” zastępuje “make install”
Przyznaję rację. Moja pomyłka.
Teraz jednak po wipisaniu w konsoli “zaklęcia” ./configure –prefix=/usr w ostatniej linijkach pojawia się jakiś komunikat o jakimś błędzie:
configure: error: Test for babl failed. Please get it from http://gegl.org/
W zasadzie, to są nawet 2 ostatnie linijki, które informują o jakimś błędzie.
checking for BABL… no
configure: error: Test for babl failed. Please get it from http://gegl.org
I wybrałem się już nawet na stronę http://gegl.org w internecie, ale nie za bardzo wiem o co tam chodzi.
Potrzebujesz paczki “babl” której niestety nie ma w repozytoriach…
svn co http://svn.gnome.org/svn/babl/trunk/ babl && svn co http://svn.gnome.org/svn/gegl/trunk/ gegl
BABL:
* cd babl
* ./autogen.sh –prefix=/opt/gimp-2.5
* make
* sudo make install (albo checkinstall żeby zainstalować jako paczkę)
* cd ..
GEGL:
* export PKG_CONFIG_PATH=/opt/gimp-2.5/lib/pkgconfig
* cd gegl
* ./autogen.sh –prefix=/opt/gimp-2.5
* make
* sudo make install (albo checkinstall żeby zainstalować jako paczkę)
* cd ..
Wybacz, że mżę zbyt upierliwy jestem, ale nie jestem zbyt dobry w tej dziedzinie. Do mnie trzeba raczej bardziej “łopatologicznie”. W związku z tym nie za bardzo wiem, co zrobić z tymi adresmi, które wymieniłeś powyżej i z tymi komendami (jak mniemam), które znajdują się pod nimi.
Długo dumałem, aż wreszcie wydumałem co z tym wszystkim należy zrobić. Za pomocą konsoli ściągnąłem sobie te wszystkie bable i gegle. Korzystając z tych wszystkich “zaklęć” przez Ciebie wymienionych, w wypadku “babl” zatrzymałem się na ./autogen.sh –prefix=/opt/gimp-2.5. W konsoli pojawił mi się komunikat:
configure: error: invalid variable name: –prefix
Configure failed or did not finish!
W wypadku “gegl” pierwsze “zaklęcie w ogóle nie działa. A po wpisaniu w konsoli ./autogen.sh –prefix=/opt/gimp-2.5 pojawia się dokładnie taki sam komunikat, jak w pierwszym wypadku, czyli:
configure: error: invalid variable name: –prefix
Configure failed or did not finish!
I na razie jednym słowem lipa. Sprawa nie wydaje mi się więc chyba tak banalnie prosta.
zastąp – przez –
Co mam zastąpić, gdzie i przez co? Nie rozumiem tego, co napisałeś zupełnie. Jeżeli chodziło Ci o to, że w miejsce prefix mam wpisać przez, to od razu muszę Ciebie powiadomić, że nic to nie zmienia. Dalej jest to samo, niestety. Oj, naprawdę te tworzenie paczki .deb ze źródeł nie jest jednak takie banalnie proste, niestety.
Jednak jestem wolnomyśliciel.
Znowu długo dumałem i wreszcie wydumałem co na co mam zastąpić. Treba było po prostu zastąpić myślnik na inny myślnik. Teraz cała procedur przebiegła już prawidłowo, żadnych komunikatów o błędach nie zauważyłem, ale żadnego pliku babl.deb, czy coś w tym stylu nie widzę, niestety.
Zrobiłem to samo z gegl. Proces poszedł znacznie dalej, ale zatrzemała się w pewnym momencie i pokazał asię komunikat:
dpkg-deb: błąd parsowanie, w pliku `/var/tmp/diIbRQcOrpnIbKHNjoPaD/package/DEBIAN/control’ niedaleko linii 10 pakiet `gegl’:
brak wartości dla version
Już mi łapska opadają. Naprawdę, to wszystko takie banalnie proste nie jest, niestety. Ciągle jakieś przeszkody. Jak się przebrnie jedną przeszkodę, to za chwilke pojawia sie kolejna. I tak końca nie widać.
Samo tworzenie paczki deb JEST banalne. Twoim problemem są zależności które na dodatek są w wersji rozwojowej… takie życie jak chce się mieć cutting edge… Zajrzyj sobie lepiej tutaj: http://forum.ubuntu.pl/showthread.php?t=79271
A co to jest ten cutting edge?
Czy z tego co napisałeś mam rozumieć, że w moim wypadku stworzenie paczki .deb GIMP-a jest niewykonalne?
Po wpisaniu sudo checkinstall pojawia się u mnie komunikat:
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@GuMi ]
1 - Summary: [ Package created with checkinstall 1.6.1 ]
2 - Name: [ babl ]
3 - Version: [ ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ babl ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
Enter a number to change any of them or press ENTER to continue:
Co mam na końcu wpisać?
Tu po prostu możesz zmienić informacje (np: nazwę). Jeżeli Ci wszystko pasuje to po prostu enter
W takim razie nadal lipa, bo później pojawia się ten komunikat, który już wczesniej wymieniłem, czyli:
dpkg-deb: błąd parsowanie, w pliku `/var/tmp/diIbRQcOrpnIbKHNjoPaD/package/DEBIAN/control’ niedaleko linii 10 pakiet `gegl’:
brak wartości dla version
I przy okazji jeszcze raz powtórzę pytanie. Co to jest ten “cutting edge”?
I jeszcze jedno pytanie chciałbym przypomnieć.
Czy z tego co napisałeś mam rozumieć, że w moim przypadku stworzenie paczki .deb GIMP-a jest niewykonalne?
w takim razie wybierz 3 gdzie jest “version” wpisz powiedzmy “1.0″ i dopiero wtedy wciśnij enter
To znaczy z angielskiego (mniej więcej) najnowszy jaki może być. Chociaż ciężko szukać naprawdę w pełni poprawnego tłumaczenia.
Nie ma rzeczy niemożliwych. Po prostu musisz się uporać z kompilacją zależności… później powinno być z górki.
Wielkie dzięki za pomoc. Udało mi się wreszcie stworzyć babl.deb i gegl.deb. teraz mam pytanie. Mam zainstalować babl.deb i gegl.deb, czy też tylko jedno z nich?
Nie czekając na Twoją odpowiedź postanowiłem trochę poeksperymentować. Najpierw zainstalowałem zarówno babl.deb jak też i gegl.deb, a następnie spróbowałem stworzyć paczkę GIMP-a. Niestety, ale nic się nie zmieniło. Po uruchomieniu “zaklęcia” ./configure –prefix=/usr nadal na końcu pojawia się komunikat:
checking for BABL… no
configure: error: Test for babl failed. Please get it from http://gegl.org/
Następnie postanowiłem wykasować najpierw gegl.deb pozostawiając babl.deb, a później odwrotnie, czyli wykasować babl.deb pozostawiając gegl.deb. W obu tych przypadkach pojawia się dokładnie taki sam powyższy komunikat. Znowu kolejna przeszkoda, której pokonać nie sposób, jak na razie.
Tak. Musisz zainstalować oba
Teraz mam zainstalowane oba i nadal lipa.
Niezbyt ciekawie to wszystko wygląda. Jednak chyba mimo wszystko w moim przypadku stworzenie paczki .deb GIMP-a jest na razie niewykonalne. Tak bynajmniej dotychczas to wszystko wygląda, niestety.