مخزن کاربران آرچ
مقالات مرتبط
مخزن کاربران آرچ (به انگلیسی: Arch User Repository و به اختصار AUR) یک مخزن جامعه محور برای کاربران آرچ است. اینمخزن دارای توضیحاتی (PKGBUILD) است که اجازهی کامپایل بسته از کد منبع را با makepkg میدهد. سپس میتوانید با pacman آن را نصب کنید. این مخزن برای سازماندهی و اشتراکگذاری بستههای جدید که توسط کاربران منتشر میشود و همچنین برای تسریع کمک به بستهها برای ورود به مخرن community، ساخته شدهاست. این صفحه توضیح میدهد چطور میتوان به این منبع دسترسی داشت و آن را به کار برد.
تعداد خوبی از بستههایی که به مخازن رسمی وارد شدهاند، از AUR کار خود را آغاز کردهاند. در AUR کاربران امکان مشارکت در توسعه بستههای خود (PKGBUILD و فایلهای مرتبط) را دارند. همچنین جامعهی AUR امکان اعطای امتیاز به بستههای موجود در آن ر ادارد. اگر یک بسته به اندازهی کافی محبوب شد، به شرطی که که مجوزی سازگار و تکنیک بستهبندی خوبی داشتهباشد، به مخزن community وارد میشود و مستقیما توسط Pacman یا ABS قابل دسترس است.
محتویات
- ۱ راهنمای شروع
- ۲ تاریخچه
- ۳ نصب بستهها
- ۴ پرسشهای متداول
- ۴.۱ AUR چیست؟
- ۴.۲ چه بستههایی اجازهٔ حضور در AUR را دارند؟
- ۴.۳ چگونه میتوان به یک بسته رأی داد؟
- ۴.۴ کاربر قابل اعتماد کیست؟
- ۴.۵ تفاوت مخزن کاربران آرچ و مخزن community چیست؟
- ۴.۶ فلان بسته در AUR منسوخ شدهاست. چه باید کرد؟
- ۴.۷ فلان بسته در AUR توسط makepkg کامپایل نمیشود؛ باید چه کار کنم؟
- ۴.۸ چطور PKGBUILD بسازم؟
- ۴.۹ من یک PKGBUILD نوشتهام و قصدِ ثبتِ آن را دارم؛ کسی مایل است آن را بررسی کند؟
- ۴.۱۰ چگونه PKGBUILD به مخزن community راه مییابد؟
- ۴.۱۱ چطور زمان روند ساختهای تکراری را کاهش بدهم؟
- ۴.۱۲ تفاوت بین بستهٔ foo و foo-git چیست؟
راهنمای شروع
کاربران میتوانند PKGBUILDها را از طریق رابط وب جستوجو و بارگیری کنند. این PKGBUILDها میتوانند توسط makepkg قابل نصب شوند و سپس توسط pacman نصب شوند.
- اطمینان حاصل کنید گروهبستهی base-devel نصب باشد. (
pacman -S --needed base-devel
) - به #پرسشهای متداول برای یافتن پاسخ سوالات معمول مراجعه کنید.
- ممکن است بخواهید پروندهی
/etc/makepkg
را بر اساس پردازنده بهینهسازی کنید. متوجه بهبود قابلتوجهای در زمان کامپایل میشوید هنگامی که متغیرهای MAKEFLAGS را تنظیم کنید. همچنین کاربران میتوانند با تنظیم متغیرهای CFLAGS در GCC، بهینهسازیهای سختافزاری را فعال کنند. مقالهی makepkg را برای اطلاعات بیشتر ببینید.
همچنان ممکن است با SSH با AUR تعامل کنید: ssh aur@aur.archlinux.org help
را برای فهرست دستورات موجود وارد کنید.
تاریخچه
نصب بستهها
نصب بستهها از AUR معمولا روندی ساده دارد. اساساً:
- فایلهای نصبی را دریافت کنید که شامل PKGBUILD و فایلهای ضروری دیگر میشود.
- تائید کنید که PKGBUILD و فایلهای همراه مخرب یا غیرقابل اعتماد نباشند.
- دستور
makepkg -sri
را درون پوشهای که فایلهل قرار دارند، وارد کنید. این دستور کد منبع را بارگیری میکند، وابستگیها را توسط pacman تشخیص داده و نصب میکند، کامپایل میکند و بسته را نصب میکند.
پیشنیازها
ابتدا اطمینان حاصل کنید که ابزارهای ضروری به همراه گروهبستهی base-devel نصب شده باشند. این گروهبسته شامل بستهی make و ابزار موردنیاز دیگر برای کامپایل کد منبع میشود.
سپس یک پوشهی مناسب برای ساخت بسته انتخاب کنید. پوشهی نصب یک پوشهی ساده است که بسته در آن ساخته میشود و میتونچاند هرجایی باشد. مثالهایی که در ادامه میبینید از ~/builds
به عنوان پوشهی ساخت استفاده میکنند.
دریافت فایلهای ساخت
بسته را در رابط وب AUR جستوجو کنید. روی نام نرمافزار در فهرست جستوجو کلیک کنید. با صفحهی اطلاعات نرمتفزار مواجه میشوید. توضیحات بسته را بخوانید تا مطمئن شوید بسته مورد نظر شما همین است. همچنین به آخرین زمان بروزرسانی بسته و نظرات کاربران توجه کنید.
میتوانید ار چند روش زیر برای ساخت فایلها استفاده کتید:
- مخزن git را که با برچسب "Git Clone URL" مشخص شدهاست را clone کنید:
$ git clone https://aur.archlinux.org/package_name.git
- مزیت این روش این است که میتوانید با
git pull
بروزرسانیهای بسته را دریافت کنید.
- فایلهای ساخت را از مرورگر توسط پیوند "Download snapshot" زیر "Package Actions" در سمت راست دریافت کنید. با این کار یک فایل فشرده دریافت میکنید که باید در پوشهای استخراج شود.
$ tar -xvf package_name.tar.gz
- همچنین میتوانید مستقیما یک tarball از ترمینال دریافت کنید( و استخراج کنید):
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
ساخت و نصب بسته
به پوشهای که دارای PKGBUILD بسته است وارد شوید.
$ cd package_name
$ less PKGBUILD
$ less package_name.install
بسته را بسازید. پس از درستیسنجی فایلها، makepkg را توسط کاربر معمولی اجرا کنید.
$ makepkg -si
-s
/--syncdeps
به طور خودکار وابستگیها را توسط pacman شناخته و نصب میکند. اگر بسته به بستهی دیگری در AUR وابسته بود، باید ابتدا وابستگی را دستی نصب کنید.
-i
/--install
اگر بسته موفقیتامیز ساخته شدهباشد، آن را نصب میکند. از سوی دیگر بستهی ساختهشده میتواند توسطpacman -U package.pkg.tar.xz
نصب شود.
-r
/--rmdeps
وابستگیهایی که تنها برای ساخت بسته نیاز است را حذف میکند. برای بروزرسانی بسته، این وابستگیها باید دوباره نصب شوند.-c
/--clean
فایلهای موقتِ هنگام ساخت که دیگر نیازی به آنها نیست را حذف میکند. این فایلها اغلب برای اشکالزدایی(debug) روند ساخت استفاده میشوند.
پرسشهای متداول
AUR چیست؟
مخزن کاربران آرچ(به اختصار AUR) مکانی است که جامعهی کاربران آرچلینوکس میتوانند PKGBUILD نرمافزارها، کتابخانهها و ... خود را بارگذاری کنند و با بقیه اعضای جامعه با اشتراک بگذارند. اشخاص میتوانند به چیزهای موردعلاقهی خود رأی دهند تا به مخزن community راه پیدا کرده و به شکل باینری در اختیار جامعه قرار گیرد.
چه بستههایی اجازهٔ حضور در AUR را دارند؟
بستهها در AUR صرفا اسکریپت نصب هستند؛ دستوراتی برای ساخت بستهی باینری برای pacman. در کل هر بستهای که شرایط بالا، #قوانین ارسال و انطباق با قوانین مجوز خود را رعایت کند، اجازهٔ حضور پیدا میکند.
For other cases, where it is mentioned that "you may not link" to downloads, i.e. contents that are not redistributable, you may only use the file name itself as the source. This means and requires that users already have the restricted source in the build directory prior to building the package. When in doubt, ask.
چگونه میتوان به یک بسته رأی داد؟
در سایت AUR ثبتنام کنید تا امکان رأی دادن برای شما آزاد شود. حال میتوانید از صفحهی هر بسته با انتخاب گزینهی "Vote for this package" به آن رأی دهید. پس از ثبتنام امکان رأی دادن از طریق رابط متنی هم وجود دارد. بستهی aur-auto-vote-gitAUR یا aurvote-gitAUR یا aurvoteAUR را نصب کنید.
از سوی دیگر اگر #احراز هویت کردهاید، میتوانید مستقیماً از خط فرمان توسط کلید ssh خود رأی دهید. این بدین معناست که نیاز به ذخیره یا نوشتن گذرواژهی خود ندارید.
ssh aur@aur.archlinux.org vote <PACKAGE_NAME>
کاربر قابل اعتماد کیست؟
کاربر قابل اعتماد (به انگلیسی: Trusted User، مخفف: TU) کسی است که وظیفه نظارت بر AUR و مخزن community را دارد. آنها PKGBUILDهای معروف را در مخزن community نگهداری میکنند و به طور کلی بر AUR نظارت دارند.
تفاوت مخزن کاربران آرچ و مخزن community چیست؟
مخزن کاربران آرچ جایی است که تمام PKGBUILDهایی که کاربران در آن ثبت کردهاند، نگهداری میشود و این PKGBUILDها باید توسط makepkg ساختهشوند. هنگامی که یک PKGBUILD به اندازهٔ کافی مشهور شود و یک TU مسئولیت آن ر به عهده بگیرد، به مخزن community وارد میشود.(نگهداری آن بر عهدهٔ TU است.). در مخزن community بستهها به شکل باینری بوده و توسط pacman قابل نصب هستند.
فلان بسته در AUR منسوخ شدهاست. چه باید کرد؟
ابتدا بسته را با پرچم out-of-date به همراه توضیحاتی که چرا بسته منسوخ است، علامتگذاری کنید. ترجیحاً شامل پیوند به انتشار جدید باشد. همچنین تلاش کنید توسط پست الکترونیک مستقیماً به نگهدارندهٔ بسته اطلاع دهید. اگر طی دو هفته هیچ پاسخی توسط نگهدارنده دریافت نکردید، میتوانید یک درخواست برای بستهٔ یتیم ارسال کنید. این بدین معناست که از یک کاربر قابل اعتماد خواستهاید این بسته را لغو کند. این تنها زمانی قابل اجراست که بسته نیاز به اقدامی از سوی نگهدارنده داشته باشد و او اقدامی نکند و همچنین شما قبلاً با او تماس داشته باشید.
در همین حال میتوانید PKGBUILD بسته را به صورت محلی ویرایش کنید و بسته را بروزرسانی کنید. بعضی مواقع بروزرسانی نیازی به تغییر در روند ساخت و نصب ندارد. در این حال کافیست تنها pkgver
یا source
را تغییر دهید.
فلان بسته در AUR توسط makepkg کامپایل نمیشود؛ باید چه کار کنم؟
احتمالاً چیزی بدیهی را فراموش کردهاید.
- سامانه را بروزرسانی کنید. پیش از کامپایل هرچیزی توسط
makepkg
، سامانه را بروزرسانیکنید چرا که احتمالا مشکل به دلیل منسوخ بودن بعضی بستهها باشد. - اطمینان حاصل کنید دو گروهبستهی base و base-devel نصب باشند.
- از
-s
درmakepkg
استفاده کنید تا وابستگیهای بسته را قبل از شروع روند ساخت، یافته و نصبکنید.
قبل از شروع ساختن، PKGBUILD و نظرات بسته را بررسی کنید. پس از این بررسیها قطعاً مشکل بدیهی نیست. CFLAGS، LDFLAGS و MAKEFLAGS سفارشی میتواند باعث مشکل باشد. اگر نمیتوانید خودتان آن مشکل را حل کنید به نگهدارندهی بسته گزارش دهید. برای مثال errorهایی که دریافت میکنید را در قسمت نظراتِ بسته ارسال کنید.
چطور PKGBUILD بسازم؟
بهترین منبع صفحهٔ ویکیِ ایجاد بستهها است. به یاد داشته باشید پیش از شروع در AUR جستوجو کنید تا زحمتِ نوشتنِ بستهای که قبلا وجود داشته را نکشید.
من یک PKGBUILD نوشتهام و قصدِ ثبتِ آن را دارم؛ کسی مایل است آن را بررسی کند؟
اگر میخواهید PKGBUILD شما را ببینند، آن را در mailing list مخصوص AUR قرار دهید تا توسط TU یا کاربران AUR بازخورد بگیرید. همچنین میتوانید از کانال IRC کمک بگیرید. کانال #archlinux-aur
در irc.freenode.net در دسترس است. همچنین میتوانید از namcap برای بررسی مشکلات PKGBUILD و بستهی مربوط به آن استفاده کنید.
چگونه PKGBUILD به مخزن community راه مییابد؟
معمولاٍ در کمترین حالت، ۱۰ رأی برای انتقال به مخزن community نیاز است. اگر یک TU بخواهد بستهای را پشتیبانی کند، غالباً در این مخزن یافت خواهدشد.
رسیدن به حداقل تعداد رأی تنها شرط مورد نیاز نیست. باید یک TU وجود داشتهباشد که بسته را نگهداری کند. تا وقتی بسته هزاران رأی و طرفدار نداشته باشد، TU نیازمند انتقال آن به مخزن community نیست.
اغلب هنگامی که یک بستهٔ معروف و پرطرفدار در AUR میمانَد به دلایل زیر است:
- آرچلینوکس یک نسخه از آن بسته را در مخازن رسمی دارد.
- بسته AURمحور باشد.(مثلاً AUR helperها)
- مجوز بسته امکان توزیع مجدد را ممنوع کردهاست.
چطور زمان روند ساختهای تکراری را کاهش بدهم؟
پیوند makepkg#بهبود زمان کامپایل را ببینید.
تفاوت بین بستهٔ foo و foo-git چیست؟
بسیاری از بستههای AUR به صورت معمولی(پایدار) و به صورت نسخهٔ تحت توسعه(ناپایدار) انتشار مییابند. نام بستهٔ تحت توسعه معمولاً با پسوندهایی مثل -cvs
, -svn
, -git
, -hg
, -bzr
یا -darcs
همراه است. نسخهٔ ناپایدار برای استفادهٔ معمولی و روزمره مناسب نیست؛ بلکه برای بررسی امکانات جدید و یافتن اشکالات مناسب هستند. با اجرای makepkg برای این بستهها، آخرین نسخهٔ کد منبع بارگیری میشود. این بستهها توانایی داشتن checksum اعتبار ندارند و بجای آن برا مخزن گیت نگهدارنده تکیه دارند.