مخزن کاربران آرچ

از ArchWiki پارسی
پرش به: ناوبری، جستجو


مخزن کاربران آرچ (به انگلیسی: Arch User Repository و به اختصار AUR) یک مخزن جامعه محور برای‌ کاربران آرچ است. این‌مخزن دارای توضیحاتی (PKGBUILD) است که اجازه‌ی کامپایل بسته از کد منبع را با makepkg می‌دهد. سپس می‌توانید با pacman آن را نصب کنید. این مخزن برای سازماندهی و اشتراک‌گذاری بسته‌های جدید که توسط کاربران منتشر می‌شود و همچنین برای تسریع کمک به بسته‌ها برای ورود به مخرن community، ساخته شده‌است. این صفحه توضیح می‌دهد چطور می‌توان به این منبع دسترسی داشت و آن را به کار برد.

تعداد خوبی از بسته‌هایی که به مخازن رسمی وارد شده‌اند، از AUR کار خود را آغاز کرده‌اند. در AUR کاربران امکان مشارکت در توسعه بسته‌های خود (PKGBUILD و فایل‌های مرتبط) را دارند. همچنین جامعه‌ی AUR امکان اعطای امتیاز به بسته‌های موجود در آن ر ادارد. اگر یک بسته به اندازه‌ی کافی محبوب شد، به شرطی که که مجوزی سازگار و تکنیک بسته‌بندی خوبی داشته‌باشد، به مخزن‌ community وارد می‌شود و مستقیما توسط Pacman یا ABS قابل دسترس است.

راهنمای شروع

کاربران می‌توانند 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 معمولا روندی ساده دارد. اساساً:

  1. فایل‌های نصبی را دریافت کنید که شامل PKGBUILD و فایل‌های ضروری دیگر می‌شود.
  2. تائید کنید که PKGBUILD و فایل‌های همراه مخرب یا غیرقابل اعتماد نباشند.
  3. دستور ‎makepkg -sri‎ را درون پوشه‌‌ای که فایل‌هل قرار دارند، وارد کنید. این دستور کد منبع را بارگیری می‌کند، وابستگی‌ها را توسط pacman تشخیص داده و نصب می‌کند، کامپایل می‌کند و بسته را نصب می‌کند.
توجه: مخزن AUR توسط pacman پشتیبانی نمی‌شود. پس مسئولیت نصب هرگونه بسته‌ای از آن به گردن خودتان است. اگر بسته‌ای در مخازن رسمی ارتقا یابد، باید تمام بسته‌های AUR که وابسته به آن کتاب‌خانه هستند، از نو ساخته شوند.

پیش‌نیازها

ابتدا اطمینان حاصل کنید که ابزارهای ضروری به همراه گروه‌بسته‌ی base-devel نصب شده باشند. این گروه‌بسته شامل بسته‌ی make و ابزار موردنیاز دیگر برای کامپایل کد منبع می‌شود.

توجه: بسته‌های AUR در نظر دارند گروه‌بسته‌ی base-devel نصب است. بسته‌ها اعضای این گروه‌بسته را به عنوان وابستگی عنوان نمی‌کنند.

سپس یک پوشه‌ی مناسب برای ساخت بسته انتخاب کنید. پوشه‌ی نصب یک پوشه‌ی ساده است که بسته در آن ساخته می‌شود و می‌تونچاند هرجایی باشد. مثال‌هایی که در ادامه می‌بینید از ‎~/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 بسته است وارد شوید.

هشدار: در مورد تمام فایل‌ها بسیار محتاط باشید. بسیار محتاطانه ‎PKGBUILD‎ و تمام فایل‌های .install را برای مخرب‌بودن بررسی کنید. PKGBUILD ها اسکریپت‌های bash هستند که دارای تابع‌هایی است که توسط makepkg اجرا می‌شوند. این تابع‌ها دارای دستورات و سینتکس bash است. پس یک ‎PKGBUILD‎ به راحتی می‌تواند دارای دستورات مخرب بدخواهانه در قسمت نویسنده(author)‌ باشد. از آنجایی که makepkg توسط fakeroot اجرا می‌شود و هیچوقت نباید توسط کاربر ریشه اجرا شود، چند لایه‌ی امنیتی وجود دارد اما زیاد روی آن‌ها حساب نکنید و حتما از مخرب نبودن فایل‌ها اطمینان حاصل کنید. اگر شک دارید، بسته را نسازید و به دنبال خبر در انجمن‌ها و mailing listها باشید.
$ 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) روند ساخت استفاده می‌شوند.
توجه: مثال بالا تنها خلاصه‌ی مختصری از روندِ ساختِ بسته است. به شدت توصیه می‌شود مقالات makepkg و ABS را ببینید.

پرسش‌های متداول

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‎ را تغییر دهید.

توجه: بسته‌های VCS طوری نیستند که با تغییر pkgver، منسوخ شوند. آن‌ها را به عنوان بسته‌ی منسوخ علامت‌گذاری نکنید؛ چرا که نگه‌دارنده علامت را برداشته و از شما چشم‌پوشی می‌کند. نگه‌دارنده‌های AUR نباید صرفا به یک pkgver متعهد باشند.


فلان بسته در AUR توسط makepkg کامپایل نمی‌شود؛ باید چه کار کنم؟

احتمالاً چیزی بدیهی را فراموش کرده‌اید.

  1. سامانه را بروزرسانی کنید. پیش از کامپایل هرچیزی توسط ‎makepkg‎، سامانه را بروزرسانی‌کنید چرا که احتمالا مشکل به دلیل منسوخ بودن بعضی بسته‌ها باشد.
  2. اطمینان حاصل کنید دو گروه‌بسته‌ی base و base-devel نصب باشند.
  3. از ‎-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 اعتبار ندارند و بجای آن برا مخزن گیت نگه‌دارنده تکیه دارند.