شما هنوز به سیستم وارد نشده اید.

#1 2015-09-29 01:02:41

LinArcX
عضو
ثبت شده: 2015-09-18
ارسال ها: 735
وب سایت

درخواست آموزش : ساخت PKGBUILD

با سلام خدمت همه دوستای گلم.
میخواستم ببینم نحوه ساخت اصولی و بنیادی PKGBUILDاز ابتدا چجوریه؟
دستوراتش از 0 تا 100 چجوری نوشته میشه؟
البته تو این پست اشاراتی شد واسه ساخت پکیج بیلد.میخوام ریزتر و شفاف تر اطلاعات کسب کنم..ممنون

آخرین ویرایش توسط LinArcX (2015-10-05 23:46:17)


"Enough!!!Don't Use "DEFAULTS" Any More..."make it simple stupid

آفلاین

#2 2015-09-29 09:09:43

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,308

پاسخ: درخواست آموزش : ساخت PKGBUILD

تمام بسته ها در آرچ باید از طریق یک PKGBUILD نصب بشن. برای بسته هایی که از مخازن اصلی یا AUR میگیرید، حتما این اتفاق خواهد افتاد. بطور خلاصه، اگر قراره یک نرم افزار یا بسته رو نصب کنیم که توی مخازن اصلی و AUR نیست، باید سورسش رو بگیریم و بجای زدن دستورات نصب و کامپایل مستقیم توی ترمینال، یک PKGBUILD براش بنویسیم و با اجرای اون PKGBUILD اون سورس کد رو تبدیل به یک بسته کنیم که براحتی توسط پکمن نصب بشه.

PKGBUILD یک فایل متنی هست که شامل چند تا قسمته. بلوک اول مربوط به اطلاعات اون بسته از قبیل اسم و دیپندنسی ها و نسخه و ویرایش و آدرس هوم پیج بسته و آدرس خود بسته (در اینترنت) و چیزهایی ازین قبیل. بلوک دوم مربوط به نحوه نصب. بلوک سوم روش هایی برای تست نصب صحیح، چکسام ها و ازین طور چیزها. درواقع پکیج منیجر های فوق العاده ای مثل پکیج منیجر آرچ، دبین، فدورا و ... ابزاری دارن که روی چنین فایل های متنی اجرا میشه و سورس  رو برای نصب آماده می کنه. درحقیقت با اجرای دستورات نوشته شده داخل PKGBUILD (که یک قسمتیشون دقیقا دستوراتی هستن که نویسنده اون سورس برای نصب بسته پیشنهاد می کنه و قسمت های دیگه جزییاتی از قبیل بسته های لازم و ملزوم و حتی پیام هایی حین و برای حذف و آپگرید و دانگرید بسته در آینده) ، یک فایل فشرده بدست میاد و اون بسته توسط پکیج منیجر نصب میشه (فایل متنی مشابه PKGBUILD در بقیه اسامی دیگری داره که حتی پکمن ابزارهایی داره که میشه توسط اونها فایل متنی معادل PKGBUILD مثلا در فدورا رو به PKGBUILD تبدیل کرد). به عبارت دیگه، این فرآیند در توزیع های دیگه هم اتفاق میفته. درمورد آرچ، تقریبا همه متفق القول هستن که این کار به روش آسانتر و سریع تری انجام میشه. وقتی قرار هست یک PKGBUILD بنویسید، میشه از دو دیدگاه بهش نگاه کرد: برای قرار دادن در AUR، برای استفاده شخصی. اگه برای قرار دادن در آیو آر باشه، قاعدتا باید یه چیز دقیق و کارشده باشه. اما اگه قرار هست فقط نیاز شخصی شما رو رفع کنه، میشه دور خیلی از فیلدها و آرایه های اختیاریش رو خط کشید و درحد چند خط یه PKGBUILD ساده نوشت تا نیاز امروز رو رفع کنه و البته بعدا تکمیل ترش هم کرد.


برای یادگیری اصولی نوشتن PKGBUILD، باید حداقل چند صفحه رو مطالعه کنید:

https://wiki.archlinux.org/index.php/Creating_packages

https://wiki.archlinux.org/index.php/PKGBUILD

https://wiki.archlinux.org/index.php/Makepkg

من درحال ترجمه صفحه اول هستم که ترجمه اولیه اش (http://wiki.archusers.ir/index.php?titl … &oldid=496) تا چند روز آینده تموم میشه.

اما نوشتن PKGBUILD اونهم مخصوصا برای استفاده شخصی، اینقدرها هم سخت نیست و با انجام چندتا تمرین و دیدن چندتا PKGBUILD که بسته اونها مشابه بسته ای هست که میخواید بسازید، میشه سریع یه دونه برای استفاده شخصی نوشت. همچنین در آدرس

/usr/share/pacman

سمپل هایی مثل

/usr/share/pacman/PKGBUILD.proto

هم وجود داره که شاید چون به اندازه PKGBUILDهایی که نوشته شدن، شلوغ نیست؛ بشه راحت تر جریان قسمت های مختلف PKGBUILD رو متوجه شد. در مورد تمرین، بهترین تمرین میتونه بازنویسی PKGBUILD بسته های روتین و پرکاربرد باشه. مثلا بازنویسی PKGBUILD یه پلیر صوتی تصویری. بهرحال، بدون تمرین، غیرممکنه که بشه ازین ابزار فوق العاده سود جست. یک تالار در انجمن وجود داره که مخصوص بحث راجع به PKGBUILDهایی هست که ما نوشتیم و بهردلیلی خوب کار نمی کنه و یا میخوایم بهتر کار کنه (http://bbs.archusers.ir/viewforum.php?id=15). انشالا که اون قسمت زودتر فعال بشه و باعث بشه تا با فکر کردن به مسایلی که اونجا مطرح میشه قوی و قوی تر بشیم.


نکته دیگر اینکه باتوجه به محوریت pacman در آرچ، بسته ها یا نرم افزارهایی که نصب میشن باید کاملا تحت کنترل pacman باشن. با نصب یک برنامه یا بسته بدون استفاده از پکمن و ابزارهاش، اون بسته از کنترل پکمن خارجه و حتی اسمش هم توی بسته های نصب شده نیست و این هم طبیعیه (برای دیدن تمام فایل های بسته های نصب شده با استفاده از ابزارهای پکمن بهمراه آدرسشون، از

 $ pacman -Ql

استفاده کنید). بنابراین نصب هر بسته ای بدون اینکه اون بسته با استفاده از یک PKGBUILD درست شده باشه، یک کار غیر اصولی و غیر استاندارد  تلقی میشه.

آخرین ویرایش توسط Arcush (2015-09-29 11:15:00)

آفلاین

#3 2015-10-03 15:43:47

Риал Краесис
عضو
از : تهران
ثبت شده: 2015-09-16
ارسال ها: 317

پاسخ: درخواست آموزش : ساخت PKGBUILD

سلام
علاوه بر حرف های ارکوش جان باید بگم شمای خاصی برای PKGBUILD در نظر نمیگیرن و اون رو مطابق با نیاز های برنامه میسازن.
در بیشتر مواقع میتونید از فایل مربوط به باقی نرم افزار ها کمک بگیرید و فایل مورد نیاز خودتون رو بسازید.
فقط تنها نکته مهم رعایت پیش نیاز ها در ساخت فایل هست.


*** I FIGHT FOR USERS ***

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB