اگر در Arch لازم داشتید یک نسخه قدیمیتر از پکیج مورد نظرتون رو نصب کنید، و فایلش رو در اختیار نداشتید، میتونید توی این آدرس دنبالش بگردید. سپس میتونید با pacman اون رو نصب کنید. به طور مثال:
$ pacman -U https://archive.archlinux.org/packages/path/packagename.pkg.tar.zst
اطلاعات بیشتر رو میتونید در این لینک از ویکی آرچ ببینید. مثلا میتونید پکیج های سیستم رو به یک تاریخ خاصی downgrade کنید و...
در ویکی آرچ مخازن غیر رسمی متعددی نام برده شده اند که کاربران میتونن اونها رو به لیست مخازن pacman اضافه کنند. البته کاملا با مسئولیت خودشون. چون این مخازن توسط تیم توسعه دهنده آرچ و یا توزیع های وابسته به آرچ کنترل و تست نمیشن.
هر مخزنی با توجه به هدف سازنده، حاوی یک سری پکیج ها است. مثلا اینجا نسخه های بتای گنوم رو میتونید به لیست مخازن اضافه کنید. یکی از مخازن، مخزن پکیج های کامپایل شده ی AUR به نام Chaotic-AUR هست. یعنی یک گروهی نشستن پکیج های به درد بخور AUR رو کامپایل میکنن و در این مخزن قرار میدن. البته این کار به صورت خودکار انجام میشه. خیلی هم به روز هست!
خوبی های این کار:
بدی های این کار:
با این حال این موضوع خیلی به درد من خورد و مشکلی باهاش ندارم. برای اینکه بتونید مخزن کامپایل شده بسته های AUR رو به لیست مخازن pacman اضافه کنید، به این سایت مراجعه کنید و طبق راهنما اقدامات لازم رو انجام بدید.
اگر نمیخواید سیستمتون پر از فایلهای locale زبان های مختلف بشه، کافیه خطوط زیر رو به فایل /etc/pacman.conf
اضافه کنید. با این کار فایلهای زبان های غیر انگلیسی از درون بسته extract نخواهند شد
NoExtract = usr/share/help/* !usr/share/help/en* NoExtract = usr/share/locale/* !usr/share/locale/en* !usr/share/locale/locale.alias NoExtract = usr/share/man/* !usr/share/man/man* NoExtract = usr/lib/chromium/locales/*.pak !usr/lib/chromium/locales/en.pak
حتما متوجه قضیه شدید. این کار فقط برای زبان ها نیست. شما میتونید هر چیزی که نمیخواد از درون یک بسته ای موقع آپدیت یا نصب اکسترکت بشه بدین ترتیب به pacman بفهمونید.
همه میدونیم که pacman مدیر بسته های توزیع های مبتنی بر Arch مثل Manjaro و Parchlinux هست. محیط های گرافیکی مختلفی برای اون ساخته شده، ولی اگه یه موقعی توی ترمینال بودید و میخواستید سریع بسته های نصب شدهتون رو ببینید، دستور زیر محیط جالبی رو فراهم میکنه که در اون لیستی از بسته های نصب شده با قابلیت جست و جوی سریع وجود داره.
$ pacman -Qq | fzf --preview 'pacman -Qil {}' --layout=reverse --bind 'enter:execute(pacman -Qil {} | less)'
در سیستم های مبتنی بر آرچ، مثل مانجارو، pacman مدیر بسته ها است. همون طور که میدونید در هر توزیع لینوکسی وقتی که آپدیت میکنیم بسته ها از اینترنت دانلود میشن و در یک فولدری که معمولا در دایرکتوری var/cache/ قرار داره نگهداری میشن. این کش خیلی خوبه، چون وقتی شما نیاز داشته باشید بسته ای رو که در ورژن جدید دچار اختلال شده downgrade کنید به ورژن قبلی راحت میتونید این کار رو بکنید.
اما به مرور زمان این بسته ها تعدادشون زیاد و زیادتر میشه و چندین گیگابایت فضای شما رو اشغال میکنن. من پیشنهاد میکنم دو نسخه از بسته هایی که الان نصب هستند در کش نگهداری بشن و قدیم تری ها از روی دیسک حذف بشن. یعنی مثلا اگر بسته های مربوط به ورژنهای ۵۵، ۵۴، ۵۳، ۵۲، ۵۱ فایرفاکس در کش وجود داشته باشن ورژن های ۵۵ و ۵۴ بمونن و بقیه پاک بشن.
بی هیچ دلیل واضحی امروز پکیج منیجر مانجارو یعنی pamac که رابط گرافیکی pacman هست، خطای زیر رو میداد:
Failed to prepare transaction: target not found
چندین بار با دستورات pacman مخازن رو بروز رسانی کردم. کشورهای مختلف رو امتحان کردم. ولی همچنان در نصب بسته ها این خطا رو میگرفتم. تا اینکه با جست و جوی بسیار، به دستور زیر رسیدم که باعث میشد یک رفرش اساسی! در pamac اتفاق بیفته و ماجرا ختم به خیر شد:
pamac update --force-refresh
آخرش هم نفهمیدیم چرا اینجوری شده بود!
حاصل سر و کله زدن های من با لینوکس