بر طبق این دستورالعمل :
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
می خواهم بروم جلو:
Step 1: Rename the upstream tarball
دوباره به سایت:
https://github.com/vinceliuice/Orchis-theme
مراجعه می کنم و اینبار بجای zip ، فایل tar.gz. را دانلود می کنم(عکس 1) ، در مثالی که در سایت دبیان آورده فایل hithere_1.0.orig.tar.gz
دارای واژه orig.tar.gz است ولی مال من tar.gz. می باشد.این orig چیست؟
سایت دبیان می گوید:
Note that there is an underscore (_), not a dash (-), in the name. This is important.
و اینکار را می کند:
$ mv hithere-1.0.tar.gz hithere_1.0.orig.tar.gz
من هم می خواهم از همین دستور استفاده کنم.( عکس 2)
سوال: چون در اسم فایل ، شماره ورژن ننوشته ،آیا برای استفاده در سیستم خودم همین طور الکی می توانم ورژنی بدهم؟( مثلا من در اینجا همین طوری ورژن 1.0 را دادم.)
Step 2: Unpack the upstream tarball
در سایت دبیان از این دستور برای Unpack کردن استفاده کرده است:
$ tar xf hithere_1.0.orig.tar.gz
من هم از همین دستور می خواهم استفاده کنم.( عکس 3)
The source will unpack into a directory of the same name, and upstream version with a hyphen in between (not an underscore), so the upstream tarball should unpack into a directory called "hithere-1.0".
In this case, the tarball already unpacks into the correct subdirectory, so no changes are required.
ولی همانطور که می بینید تا جایی که من متوجه می شوم با این دستور در مثال سایت دبیان فایل hithere_1.0.orig.tar.gz به hithere-1.0 تبدیل می شود
ولی چرا در مال من فایل orchis_1.0.tar.gz تبدیل می شود به Orchis-theme-2022-05-29 نه به orchis-1.0 ، چیزی به ذهنم نمی رسد!
پاسخ به سوال ارسالی قبلی ام و همچنین بهینه سازی جدید برای مطالب قبلی ام:
اگر توسعهدهنده نرم افزاری ، فایل orig آن نرمافزار را ارایه نکرده است ، جای هیچ گونه نگرانی نیست. من بلاخره امروز توانستم ، تنها با استفاده از آزمون وخطا به راه حل صحیح ایجاد فایل orig مربوط به یک فایل تاربال دست پیدا کنم.
در ضمن در اینجا راهکار صحیح تر تغییر نام فایل تاربال را برای ساخت فایل deb به شما خواهم گفت. تا بعداً دچار مشکل نشوید. هر چند که فایل deb ای که با روشهای قبلی گفتهام کار میکند و مشکلی ندارد ولی در ریز ریز مطلب ، راهکار پایینی برای تغییر نام پوشه تاربال به نام مورد نظر بهتر می باشد.
مثال همیشگی:
فایلی بنام Orchis-theme-2022-05-29.tar.gz می باشد. در اینجا دو تا مساله داریم:
الف) مساله اول این است که ارایه دهنده این نرمافزار فایل orig این نرمافزار را ارایه نکرده است.
اگر به سایت دبیان نگاه کنید با استفاده از دستور:
tar xf hithere_1.0.orig.tar.gz
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackagingخروجی این دستور ایجاد پوشه ای بنام hithere-1.0 می باشد. ( به تفاوت دو تا حرف آندرلاین و همچنین خط فاصله در هر دو کلمه حتماً دقت فرمایید.) تا اینجا من اکثراً از دستور :
dh_make --createorig
برای فرآیند ''Debianization'' استفاده میکردم ، ماحصل این دستور ایجاد پوشه debian در پوشه
سورس و ایجاد فایل orig در پوشه بالادست بود.
ولی وقتی که از دستور tar xf برای اکسترکت کردن این فایل orig استفاده میکردم ، عوض اینکه به من خروجی، پوشه ای با محتویات مربوطه بدهد، محتویات فایل orig را در همان پوشه extract می کرد.( عکس 1)
این فایل orig ساخته شده توسط این روش می لنگید هرچند که فایل deb ایجاد شدهام ، مشکلی از لحاظ کارکرد نداشت. ولی بهرحال دوست داشتم این فایل orig هم صحیحتر بشود و با فرمان
tar xf خروجی معقول تری به من بدهد.
ب) مساله دوم برایم این است که در برخی از موارد بایستی برای ساخت فایل deb ، نام فایل تاربال بایستی تغییر نام داده شود.
شاید این تغییر نام مثلاً به این علت باشد که در نام فایل تاربال حروف بزرگ بکار رفته باشد که در حین استفاده از dh_make دچار خطا خواهد شد. فایل Orchis-theme-2022-05-29.tar.gz را میخواهیم برای ساخت فایل deb استفاده نماییم ،چون حرف بزرگ در نام این فایل بکار رفته است برای اینکار بایستی فکری بکنیم.
سالم ترین روشی که تا به این لحظه برای حل مسایل اینچنینی پیدا کرده ام بدین صورت است:
۱- ابتدا فایل تاربال را extract می کنیم.
۲- پوشه ای جدید و خالی با همان نامی که فایل deb امان را میخواهیم نامگذاری شود،ایجاد می نماییم.
۳-محتویات پوشه extract شده را درون پوشه جدید ، کپی می نماییم.
۴- فایل تاربال و پوشه extract شده از آن را حذف می نماییم و یا بجای دیگری منتقل می نماییم ، چون با اینها دیگر کاری نخواهیم داشت.
۵- پوشه جدیدمان را ، بصورت فایل تاربال در میآوریم.( ترجیحاً بصورت tar.gz )
پس تا اینجا ما یک پوشه داریم و یک فایل تاربال ایجاد شده از آن.
۶-می رویم به درون پوشه سورس و این دستور را اجرا می کنیم:( عکس 2 )
dh_make -f ../name_of_TarballFile
مثلاً مال من می شود:
dh_make -f ../orchis-1.tar.gz
ماحصل این دستور بازهم دو تا است:
الف) ایجاد پوشه debian با محتویاتش در درون پوشه سورس.
ب) ایجاد فایل orig ، در پوشه بالایی.( عکس 3 )
برای اطمینان که این فایل orig ، به شکلی که سایت دبیان گفته:
Step 2: Unpack the upstream tarball
The source will unpack into a directory of the same name, and upstream version with a hyphen in between (not an underscore), so the upstream tarball should unpack into a directory called "hithere-1.0".
In this case, the tarball already unpacks into the correct subdirectory, so no changes are required.
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging در میآید یا نه ، این دستور را امتحان میکنیم :
tar xf orchis_1.orig.tar.gz
در نام فایل تاربال orig ، از حرف آندرلاین استفاده شده است و بعد از استفاده از فرمان tar xf
همانطور که در عکس 4 ، میبینید ، بصورت اتوماتیک پوشه ای با نام orchis-1 ایجاد شده است.
که در این اسم بصورت اتوماتیک بجای حرف آندرلاین از حرف خط فاصله استفاده شده است ، دقیقاً همانی را که سایت دبیان گفته است ، محقق شده است.
بنظر بنده حقیر از ابتدای کار که فایل تاربال میآید بدستمان تا فرآیند ''Debianization''
مواردی که در این ارسالی گفتم ، میشود گفت آسانترین و بدون دردسرترین روشی است که یک فرد میتواند برای ساخت فایل deb در پیش بگیرد.( البته از روش debuild )
البته موارد مربوط به بعد از ''Debianization'' ، مواردی دیگر را میطلبد که نمیشود برای آن یک اصول مشخص را گفت ، فرد باید توانایی ویرایش فایل های rules و control و.... را داشته باشد.
هر چند که در ارسالی های قبلیام تا حدی به این موارد پرداخته ام .
ولی بهر حال به یاد داشته باشید اگر زمانی خواستید از طریق debuild ، فایل deb بسازید، نیازمند این سه تا هستید:
۱- فایل تاربال ( با نام مناسب)
۲- پوشه اکسترکت شده فایل تاربال ( با نام مناسب)
۳- فایل orig ( تولید شده از راه صحیحش)
که در اینجا به حد کفایت آنها را خدمتتان گفتم.