আমি নিজে একটি ডিইবি ফাইল তৈরি করতে চাই। আমি কেবল একটি ফোল্ডার সরবরাহ করতে চাই যাতে ইনস্টল করার জন্য ডেটা থাকে এবং ইনস্টলেশনের পরে একটি স্ক্রিপ্ট কার্যকর করা যায়।
এটা কি সম্ভব?
আমি নিজে একটি ডিইবি ফাইল তৈরি করতে চাই। আমি কেবল একটি ফোল্ডার সরবরাহ করতে চাই যাতে ইনস্টল করার জন্য ডেটা থাকে এবং ইনস্টলেশনের পরে একটি স্ক্রিপ্ট কার্যকর করা যায়।
এটা কি সম্ভব?
উত্তর:
আমার সুপারিশটি উত্স প্যাকেজ তৈরি করা make বিল্ড-অপরিহার্য , ডিহেল্পার , ডিএইচ-মেক ইনস্টল করুন । আপনি যে ডিরেক্টরিগুলি ইনস্টল করতে চান সেগুলি ডিরেক্টরিতে পরিবর্তন করুন (ডিরেক্টরিটির নাম অবশ্যই ফর্মের হতে হবে $PACKAGE-$VERSION
, যেমন myapp-4.2-1
মায়াপ্প ভি 4.2 প্যাকেজিংয়ের জন্য আপনার প্রথম প্রয়াসের জন্য) এবং রান করুন dh_make --createorig
। প্রশ্নগুলোর উত্তর দাও. ডিহেল্পার একটি প্যাকেজ তৈরির জন্য প্রয়োজনীয় বুনিয়াদি অবকাঠামো তৈরি করবে যার নাম একটি সাবডাইরেক্টরিতে ফাইল তৈরি করে someচ্ছিক debian
ফাইলগুলির জন্য কিছু বাধ্যতামূলক ফাইল এবং টেম্পলেট উভয়ই। আপনার এই ফাইলগুলির কয়েকটি সংশোধন করার প্রয়োজন হতে পারে:
debian/rules
যা প্রয়োজন ঠিক সেই জায়গায় ফাইলগুলি ইনস্টল করতে এবং ইনস্টল করতে সম্পাদনা করুন । আপনার যদি কেবল কিছু ফাইল অনুলিপি করতে হয় এবং স্টাফগুলি সংকলন না করতে হয় তবে কোন ফাইলটি debian/install
কোথায় ইনস্টল করা দরকার তা নির্দিষ্ট করতে কেবল ফাইল সম্পাদনা করুন ।debian/copyright
আপনার প্যাকেজ সম্পর্কে লাইসেন্সের তথ্য এবং সর্বশেষ সংস্করণটি কোথায় পাবেন সে সম্পর্কিত তথ্য যুক্ত করতে সম্পাদনা করুন (যদি প্রাসঙ্গিক হয়)।debian/changelog
কোনও আইটিপি-র রেফারেন্স অপসারণ করতে সম্পাদনা করুন (এটি কেবলমাত্র প্রাসঙ্গিক যদি আপনি দেবিয়ান প্রকল্পের জন্য কাজ করছেন)। পুনরায় নামকরণ debian/postinst.ex
করুন debian/postinst
এবং আপনার পোস্ট-ইনস্টলেশন কমান্ড যুক্ত করুন। পরে আপনি যদি আপনার প্যাকেজ আপডেট debchange -i
করেন তবে চেজলগ এন্ট্রি যুক্ত করতে চালনা করুন বা ইমাস্যাক্সে ফাইল সম্পাদনা করতে ( dpkg-dev-el ইনস্টল থাকা)।চালান dpkg-buildpackage -rfakeroot -us -uc
গড়ে তুলতে .deb
প্যাকেজ (Remove -us -uc
যদি আপনি আপনার PGP কী দিয়ে প্যাকেজ সাইন ইন করতে চান)।
যদি আপনি উত্স প্যাকেজটি তৈরি না করে সরাসরি বাইনারি প্যাকেজ তৈরি করার সিদ্ধান্ত নেন, যা প্রক্রিয়াটি সহজতর করার জন্য অনেকগুলি সরঞ্জাম নেই বলে সত্যই সহজ নয়, আপনার ডিবে প্যাকেজগুলির বিন্যাসের সাথে কিছু প্রাথমিক পরিচয় প্রয়োজন। এটি ডেবিয়ান পলিসি ম্যানুয়ালে বর্ণিত হয়েছে , বিশেষত ch। 3 (বাইনারি প্যাকেজগুলির ফর্ম্যাট) , সিএইচ। 5 (নিয়ন্ত্রণ ফাইল) , সিএইচ। 6 (ইনস্টলেশন স্ক্রিপ্ট) এবং পরিশিষ্ট বি (বাইনারি প্যাকেজ ম্যানিপুলেশন) ।
আপনি নিশ্চিত হন যে আপনার প্যাকেজটি প্রত্যাশিত ফাইলগুলি ইনস্টল করে /usr/share/doc/copyright
(প্যাকেজের সামগ্রীর লাইসেন্স সহ প্যাকেজের সর্বশেষ সংস্করণটি কোথায় সন্ধান করতে হবে) এবং /usr/share/doc/changelog.Debian.gz
(ডিবে প্যাকেজের চেঞ্জলগ ধারণ করে)। আপনি কেবল ইন-হাউস প্যাকেজটি ব্যবহার করতে যাচ্ছেন তবে আপনার এগুলির দরকার নেই তবে সেগুলি রাখাই ভাল।
আপনার যদি ডেবিয়ান সরঞ্জাম উপলব্ধ থাকে dpkg-deb
তবে প্যাকেজটি তৈরি করতে ব্যবহার করুন । ইনস্টল করার জন্য ডেটাযুক্ত ডিরেক্টরিতে DEBIAN
কন্ট্রোল ফাইল এবং রক্ষণাবেক্ষণকারী স্ক্রিপ্টগুলি সমন্বিত শীর্ষ স্তরে ডাকা একটি ডিরেক্টরি যুক্ত করুন ।
$ ls mypackage-42
DEBIAN etc usr var
$ dpkg-deb -b mypackage-42
আপনি ডেবিয়ান সরঞ্জাম আছে না থাকে, তাহলে আপনি যে ফাইলগুলি নামক প্যাকেজ করতে চান তার একটি সংরক্ষণাগার নির্মাণের data.tar.gz
, নিয়ন্ত্রণ ফাইল নামক একটি পৃথক সংরক্ষণাগার control.tar.gz
(কোন সাবডিরেক্টরি), এবং একটি টেক্সট ফাইল নামক debian-binary
এবং টেক্সট ধারণকারী 2.0
।
cd mypackage-42
tar czf ../data.tar.gz [a-z]*
cd DEBIAN
tar czf ../../control.tar.gz *
cd ../..
echo 2.0 > debian-binary
ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz
আপনি অন্তত একটি প্রয়োজন নিয়ন্ত্রণ ফাইল ক্ষেত্রের সাথে Package
, Maintainer
, Priority
, Architecture
, Installed-Size
, Version
, এবং যে কোনো প্রয়োজনীয় নির্ভরতা ঘোষণা।
ইনস্টলেশন কল করার পরে স্ক্রিপ্টটি কার্যকর করা হবে postinst
। এটি কার্যকর করার জন্য নিশ্চিত হন। এটা পাশাপাশি যায় control
।
আপনার যদি ইতিমধ্যে অন্য বিতরণ থেকে বাইনারি প্যাকেজ থাকে তবে আপনি এটি রূপান্তর করতে এলিয়েন ব্যবহার করতে পারেন ।
dch -i
।
ar
করছে tar
না?
dh_make --createorig
ব্যবহার করে তা পরিবর্তন করতে চান তবে আপনার আগে export DEBEMAIL="me@example.com"
এবং export DEBFULLNAME="Firstname Lastname"
আগে প্রয়োজন ।
প্রথমে আপনাকে একটি বিল্ড ফোল্ডার এবং আপনার ফাইলগুলির একটি সংরক্ষণাগার তৈরি করতে হবে: tar czvf data.tar.gz files
তারপরে বিল্ড ফোল্ডারে আপনাকে অবশ্যই কিছু চাওয়া তথ্য সহ একটি নিয়ন্ত্রণ ফাইল তৈরি করতে হবে:
Package: xxxxxx
Version: 0.0.1
Section: user/hidden
Priority: optional
Architecture: armel
Installed-Size: `du -ks usr|cut -f 1`
Maintainer: Your Name <xxx@xxx.xx>
Description: This is optional, but creates warnings if left out
তারপরে আপনি .deb ফাইলটির প্রাক ও পোস্ট ইনস্টল এবং প্রাক এবং পোস্ট অপসারণ নিয়ন্ত্রণ করতে স্বতন্ত্রভাবে প্রিনস্ট, পোস্টিন্ট, প্রিআরএম এবং পোস্টআরএম শেল স্ক্রিপ্টগুলি যুক্ত করতে পারেন এবং তারপরে আপনি টার দিয়ে নিয়ন্ত্রণ সংরক্ষণাগারটি তৈরি করতে পারেন: tar czvf control.tar.gz control preinst postinst prerm postrm
তারপর আপনি একটি ডেবিয়ান-বাইনারি ফাইল প্রয়োজন: echo 2.0 > debian-binary
। আপনার বিল্ড ফোল্ডারে আপনার এখন এই ফাইলগুলি থাকা উচিত: debian-binary
control.tar.gz
এবং data.tar.gz
।
অবশেষে ar
.deb ফাইলটি তৈরি করতে আপনার প্যাকেজ দরকার :ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
চাপ দেওয়ার পক্ষে এটি অর্ডারটি গুরুত্বপূর্ণ: টিউমার আগে অবশ্যই নিয়ন্ত্রণ আসতে হবে।
আমি প্রচুর প্যাকেজ করি এবং একটি সম্পূর্ণ করা তুচ্ছ বিষয় নয়। একটি ইতিবাচক নোটে, ফাইল এবং স্ক্রিপ্টগুলি খুব কম কাজ করে। আপনি খুব সহজেই একটি ডিভাইস হিসাবে পরিচিত হিসাবে একটি প্যাকেজ তৈরি করতে পারেন ।
ডিব্রিয়েট হ'ল একটি সহজ সরল জিইউআই, কেবলমাত্র সাধারণ ডিইবি প্যাকেজ তৈরি করার জন্য। আপনি কেবল কোন ফাইলগুলি কোথায় যান সেগুলি নির্দিষ্ট করতে পারেন এবং পোস্ট / প্রাক ইনস্টল / আনইনস্টলগুলিতে / কি কার্যকর করা উচিত। আমি কেবলমাত্র আমার সমস্ত প্যাকেজগুলি স্ট্যান্ডার্ড পদ্ধতিতে করতাম, তবে আমি এই সরঞ্জামটি ব্যবহার শুরু করার পরে, যখন প্রয়োজন হবে তখনই ফিরে যাব।
প্যাকেজিংয়ে দেবিয়ান উইকি দেখুন , সম্ভবত equivs
(লিঙ্কটি দেখুন) ইতিমধ্যে আপনার প্রয়োজনীয়তা পূরণ করে।
deb
ফাইল ফর্ম্যাটে উইকিপিডিয়ায় থাকা পৃষ্ঠায়ও অনেকগুলি দরকারী লিঙ্ক রয়েছে।
এটির উবুন্টু প্যাকেজগুলি ব্যবহার করে ডেবিয়ানের জিমব্রা 7 এর সাথে ছুটে আসুন। (আমি জেদি, আমি জিব্রা কেবল উবুন্টুর জন্য প্রকাশিত হওয়া সত্ত্বেও ডুবিয়ান> বুবুন্টু পছন্দ করি)) আমি নিশ্চিত না যে আমি এর আগে কীভাবে কাজ করেছি, আমি নিশ্চিত যে এটি আগে ইনস্টল করার সময় আমার এই কাজটি করতে হবে না!
mkdir new
for i in *.deb
do echo `date`: working on $i
ar x $i
cd control
rm * 2> /dev/null
tar -xzpvf ../control.tar.gz
tr "_" "-" < control > control2
mv -v control2 control
tar -czpvf ../control.tar.gz .
cd ..
ar r new/$i debian-binary control.tar.gz data.tar.gz
done
rm -rf debian-binary control.tar.gz data.tar.gz control
আপনার সমস্ত নতুন .deb ফাইল এতে থাকবে new/
।
দ্রষ্টব্য : এটি হ্রাস করা ছিল - dpkg on Wheezy এর এখন --for-Bad-version রয়েছে।
প্যাকেজগুলি দ্রুত তৈরি করার জন্য আপনি চেকইনস্টল প্রোগ্রামটি ব্যবহার করতে পারেন। এটি প্রোগ্রামের ইনস্টলালেশন করে, পরিবর্তনগুলি দেখে - এবং এটির একটি ডেবি বা আরপিএম প্যাকেজ তৈরি করে।
$ apt-get install build-essential dh-make debhelper devscripts
$ wget http://nmap.org/dist/nmap-LAST.tar.bz2
$ tar xf nmap-LAST.tar.bz2
$ cd nmap-LAST
$ dh_make -s -e youremail@site.org -f ../nmap-LAST.tar.bz2
$ apt-get install libgtk2.0-dev flex bison libpcap0.8-dev \
libpcre3-dev binutils-dev python-all-dev
$ dpkg-buildpackage