ঠিক আছে, এখানে একটি জিনিস আমাকে ধাঁধা দেয় ... আমি উত্স থেকে একটি প্যাকেজ তৈরি করার চেষ্টা করছি এবং তারপরে checkinstall
একটি .deb প্যাকেজ উত্পন্ন করার জন্য ব্যবহার করব । মনে রাখবেন যে আমি কেবল .deb প্যাকেজটি তৈরি করতে চাই, তবে আমি এটি ইনস্টল করতে চাই না।
সুতরাং, এখানে একটি উদাহরণ রয়েছে - আমি উবুন্টু ১১.০৪ এ আছি, এবং প্রথমে আমি এটি feh
ডিফল্ট সংগ্রহস্থল থেকে প্যাকেজটি ইনস্টল করি ; যার সংস্করণ নম্বর আপাতভাবে 1.3.4.dfsg.1.3- এ রয়েছে
তারপরে আমি feh
উত্স থেকে তৈরি করার চেষ্টা করছি ; পেয়েছিলাম make
পাস, এবং নতুন চালাতে পারেন feh
কম্যান্ড লাইন থেকে; চমত্কার।
এখন অবশেষে, একটি ডিবে প্যাকেজ তৈরি করতে, আমি নিম্নলিখিত কমান্ড লাইনটি ব্যবহার করছি:
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
ক্রাইনের জন্য বেশি জোরে ব্যবহার করেছি !!!
এবং তারপরে স্পষ্টতই ব্যঙ্গাত্মক হওয়ার প্রয়াসে লগটি চালিয়ে যায়:
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
উপরের হিসাবে কমপক্ষে হওয়া উচিত ছিল ?) - তবে এটি নির্দোষ যে স্পষ্টভাবে যে ২. D ইনস্টল করা হয়নি, আমার নির্দেশ সত্ত্বেও ইনস্টল করা হয়নি ...
অবশ্যই, আমি পরে অপসারণ করতে চেষ্টা করতে পারেন:
$ 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'"
। আমার ধারণা আমি লেখকের সাথে বা অন্য কিছুর সংস্পর্শে আসার চেষ্টা করব।