Oke, ini satu hal yang membingungkan saya ... Saya mencoba membuat paket dari sumber, dan kemudian gunakan checkinstall
untuk menghasilkan paket .deb. Perhatikan bahwa saya hanya ingin membuat paket .deb, tetapi saya TIDAK ingin menginstalnya .
Jadi, inilah contohnya - Saya menggunakan Ubuntu 11.04, dan pertama saya menginstal feh
paketnya dari repositori default; yang memiliki nomor versi tampaknya menjadi 1.3.4.dfsg.1-3
Lalu saya mencoba membangun feh
dari sumber ; harus make
lulus, dan dapat menjalankan yang baru feh
dari baris perintah; megah.
Akhirnya, untuk membuat paket deb, saya menggunakan baris perintah berikut:
sudo checkinstall -D -y \
--install=no \
--fstrans=no \
--reset-uids=yes \
--pkgname=feh \
--pkgversion=2.7 \
--pkgrelease="tar.bz2" \
--arch=i386 \
--pkglicense=GPL \
--maintainer="Debian PhotoTools Maintainers <pkg-phototools-devel@lists.alioth.debian.org>" \
--pakdir=../.. \
--requires=libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info
OK, perhatikan bahwa saya pernah menggunakannya di --install=no
sana? Bahkan man checkinstall
mengatakan:
--instal Beralih penginstalan paket yang dibuat.
Nah, inilah yang checkinstall
dijawab oleh perintah ini :
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
/usr/bin/checkinstall: eval: line 598: syntax error near unexpected token `newline'
/usr/bin/checkinstall: eval: line 598: `echo Debian PhotoTools Maintainers <pkg-phototools-devel@lists.alioth.debian.org>'
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y
Preparing package documentation...OK
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@mypc ]
1 - Summary: [ Package created with checkinstall 1.6.2 ]
2 - Name: [ feh ]
3 - Version: [ 2.7 ]
4 - Release: [ tar.bz2 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ feh-2.7 ]
9 - Alternate source location: [ ]
10 - Requires: [ libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info ]
11 - Provides: [ feh ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
Enter a number to change any of them or press ENTER to continue:
Installing with make install...
========================= Installation results ===========================
installing manuals to /usr/local/share/man
installing docs to /usr/local/share/doc/feh
installing executables to /usr/local/bin
installing fonts to /usr/local/share/feh/fonts
installing images to /usr/local/share/feh/images
installing examples to /usr/local/share/doc/feh/examples
======================== Installation successful ==========================
NOOOOOOOOOOOOOOOOO !!!!!!!!!!
Saya TIDAK ingin paket sialan INSTALL - ITULAH MENGAPA SAYA DIGUNAKAN --install=no
UNTUK CRYIN OUT LOUD !!!
Dan kemudian, tampaknya dalam upaya untuk menjadi sarkastik, log berlanjut:
Copying documentation directory...
./
./TODO
./AUTHORS
./COPYING
./ChangeLog
./README
Copying files to the temporary directory...OK
Stripping ELF binaries and libraries...OK
Compressing man pages...OK
Building file list...OK
Building Debian package...OK
NOTE: The package will not be installed
Anda pasti bercanda dengan " CATATAN: Paket ini tidak akan diinstal ", benar, Pak checkinstall
? Tentu Anda; setelah ini selesai, perhatikan apa yang saya dapatkan:
$ apt-cache show feh | grep Version
Version: 1.10-1
$ feh --version
feh version 2.7
Compile-time switches: curl xinerama
$ which feh
/usr/local/bin/feh
Tidak yakin dari mana 1.10-1
datangnya (seharusnya setidaknya 1.3.4
, seperti di atas?) - tetapi sangat jelas bahwa 2,7 DID bisa diinstal, DI LUAR instruksi saya BUKAN untuk menginstal ...
Tentunya, saya dapat mencoba menghapus setelah itu:
$ sudo dpkg -r feh
(Reading database ... 202193 files and directories currently installed.)
Removing feh ...
$ sudo dpkg --purge feh
(Reading database ... 202163 files and directories currently installed.)
Removing feh ...
Purging configuration files for feh ...
$ feh --version
feh version 2.7
Compile-time switches: curl xinerama
$ which feh
/usr/local/bin/feh
... tetapi bahkan tidak dpkg --purge
berfungsi ( apt-get remove
tidak akan bekerja sejak awal, karena ini adalah paket .deb yang diinstal secara manual). Dan selain dpkg -r
tidak memberikan versi (jadi saya tidak benar-benar yakin apa yang seharusnya dihapus) - itu sebenarnya TIDAK menghapus executable berdarah ?!
Tapi bisa ada yang menjelaskan apa yang terjadi di sini - dan bagaimana untuk mendapatkan checkinstall
ke hanya menghasilkan .deb, dan tidak menginstalnya pada saat yang sama? Pertanyaan bonus - cara menghapus SEMUA file, termasuk file yang dapat dieksekusi /usr/local/bin/
, yang diinstal dengan cara ini - karena tampaknya dpkg -r
tidak berfungsi?
eval echo $1
... Itu seharusnya benar-benar eval "echo '$1'"
. Saya kira saya akan mencoba untuk menghubungi penulis atau sesuatu.