ตกลงนี่คือสิ่งหนึ่งที่ไขปริศนาฉัน ... ฉันกำลังพยายามสร้างแพ็คเกจจากซอร์สโค้ดแล้วใช้checkinstall
เพื่อสร้างแพ็คเกจ. deb โปรดทราบว่าฉันต้องการเพียงแค่สร้างแพคเกจ .deb แต่ฉันไม่ต้องการที่จะติดตั้งมัน
ต่อไปนี้เป็นตัวอย่าง - ฉันใช้ Ubuntu 11.04 และก่อนอื่นฉันติดตั้งfeh
แพคเกจจากที่เก็บเริ่มต้น ซึ่งมีหมายเลขรุ่นที่เห็นได้ชัดคือ1.3.4.dfsg.1-3
จากนั้นฉันก็พยายามที่จะสร้างfeh
จากแหล่งที่มา ; ได้make
ผ่านไปแล้วและสามารถเรียกใช้ใหม่feh
จากบรรทัดคำสั่ง; โอ่โถง
ในที่สุดเมื่อต้องการสร้างแพ็คเกจ deb ฉันใช้บรรทัดคำสั่งต่อไปนี้:
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
ตกลงสังเกตว่าฉันเคยใช้ที่--install=no
นั่น? แม้man checkinstall
พูดว่า:
- ติดตั้งสลับการติดตั้งแพคเกจที่สร้างขึ้น
นี่คือสิ่งที่checkinstall
คำสั่งนี้ตอบ:
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 !!!!!!!!!!
ฉันไม่ต้องการให้แพคเกจแช่งติดตั้ง - นั่นคือเหตุผลที่ฉันใช้--install=no
CRYIN OUT ดัง ๆ !
และจากนั้นในความพยายามที่จะประชดประชันบันทึกจะดำเนินต่อไป:
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
คุณต้องล้อเล่นกับ " หมายเหตุ: แพคเกจนี้จะไม่ถูกติดตั้ง " checkinstall
ใช่ไหมคุณ? แน่นอนว่าคุณ; หลังจากเสร็จแล้วให้สังเกตสิ่งที่ฉันได้รับ:
$ 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
ไม่แน่ใจว่า1.10-1
มาจากไหน (ควรมีอย่างน้อย1.3.4
ตามข้างบน?) - แต่มันชัดเจนว่าแชท 2.7 DID ได้รับการติดตั้งแม้คำแนะนำของฉันจะไม่ติดตั้ง ...
แน่นอนฉันสามารถลองลบภายหลัง:
$ 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
... แต่ไม่สามารถใช้dpkg --purge
งานได้ ( apt-get remove
จะไม่สามารถเริ่มต้นได้เนื่องจากเป็นแพ็คเกจ. deb ที่ติดตั้งด้วยตนเอง) และนอกจากจะdpkg -r
ไม่ให้รุ่น (ดังนั้นฉันไม่แน่ใจจริงๆว่ามันควรจะถูกลบออก) - ในความเป็นจริงไม่ได้ลบเลือดที่ปฏิบัติการได้หรือไม่!
แต่ทุกคนสามารถอธิบายสิ่งที่เกิดขึ้นที่นี่ - และวิธีการที่จะได้รับcheckinstall
ไปเพียงสร้าง .deb และไม่ติดตั้งได้ในเวลาเดียวกันได้หรือไม่ คำถามโบนัส - จะลบไฟล์ทั้งหมดรวมถึงไฟล์/usr/local/bin/
ที่ติดตั้งด้วยวิธีdpkg -r
นี้ได้อย่างไรเนื่องจากเห็นได้ชัดว่าใช้งานไม่ได้?
eval echo $1
... eval "echo '$1'"
อันที่จริงมันควรจะเป็น ฉันเดาว่าฉันจะพยายามติดต่อกับผู้แต่งหรืออะไรซักอย่าง