لینوکس و من

خالی کردن هدفمند کش پکیج ها در pacman

نویسنده : امین | تاریخ: 1396/07/5

در سیستم های مبتنی بر آرچ، مثل مانجارو، pacman مدیر بسته ها است. همون طور که میدونید در هر توزیع لینوکسی وقتی که آپدیت میکنیم بسته ها از اینترنت دانلود میشن و در یک فولدری که معمولا در دایرکتوری var/cache/ قرار داره نگهداری میشن. این کش خیلی خوبه، چون وقتی شما نیاز داشته باشید بسته ای رو که در ورژن جدید دچار اختلال شده downgrade کنید به ورژن قبلی راحت میتونید این کار رو بکنید.
اما به مرور زمان این بسته ها تعدادشون زیاد و زیادتر میشه و چندین گیگابایت فضای شما رو اشغال میکنن. من پیشنهاد میکنم دو نسخه از بسته هایی که الان نصب هستند در کش نگهداری بشن و قدیم تری ها از روی دیسک حذف بشن. یعنی مثلا اگر بسته های مربوط به ورژنهای ۵۵، ۵۴، ۵۳، ۵۲، ۵۱ فایرفاکس در کش وجود داشته باشن ورژن های ۵۵ و ۵۴ بمونن و بقیه پاک بشن.
برای این کار دستور زیر رو اجرا میکنیم:
sudo paccache -rk 2
در پاسخ میبینید که سیستم بهتون میگه چند بسته حذف شد و چند مگابایت فضا آزاد شد.
در قدم بعد میتونیم بسته هایی که الان در حال حاضر نصب نیستن رو هم از کش پاک کنیم. مثلا شما یه چیزی نصب کردید که بعدا پاکش کردید. حالا دیگه لزومی نداره بسته مربوطه توی کش مونده باشه!
sudo paccache -ruk 0

من ۸ گیگابایت کش داشتم که الان ۱.۳ شده.

حالا میتونیم این کار رو به خود پکمن بسپاریم و بهش بگیم که هر وقت آپدیت کردی یا چیزی نصب کردی یا پاک کردی، واسه من این تمیز کاری رو انجام بده. برای این کار فایل زیر رو با این محتویات میسازیم
1- sudo mkdir /etc/pacman.d/hooks
2- sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
----------------------------------------------------------------------------
با این محتویات:

[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache -rk 2



لینک‌های مرتبط

یک اسکریپت خوب برای راحت تر کردن pacman

نویسنده : امین | تاریخ: 1393/01/10

همون طور که میدونید pacman مدیر بسته ها در آرچ هست. دستورات زیادی داره که کار کردن با اونها ممکنه در ابتدا سخت باشه. وجود یک اسکریپت که کار رو ساده تر کنه لازم دیدم، اما هر چه گشتم چیزیو که میخواستم پیدا نکردم. بنابراین دست به کار شدم و خودم یک اسکریپت نوشتم. از نتیجه کار راضی ام. شما هم  میتونید این اسکریپت رو داشته باشید. به ادامه مطلب برید و اسکریپت رو در یک فایل ذخیره کنید. مجوز اجرایی رو بهش بدید و اون رو در usr/local/bin/ کپی کنید.

روش کار چنین هست که با دستور pm و متعلقاتش میتونید بکیج ها رو مدیریت کنید. مثلا:

pm -i mplayer یا pm install mplayer بسته ی mplayer رو از مخازن نصب میکنه
pm -d mplayer یا pm delete mplayer بسته ی mplayer رو با تمام بسته هایی که به اون dependent هستند پاک میکنه.

هر کسی هم که این اسکریپت رو میبینه و فکر میکنه میتونه بهتر و ساده تر بشه، میتونه تغییرش بده یا پیشنهاد بده.

ادامه مطلب

لینک‌های مرتبط

pacman را سریعتر داشته باشید

نویسنده : امین | تاریخ: 1393/01/5

خیلی ساده است. خدا پدر مادر توسعه دهندگان آرچ لینوکس رو نگه داره. خداییش کاملترین wiki هایی که دیدم مال این توزیعه. و توزیع بسیار خوبی هم هست. خیلی ازش راضیم.

بگذریم...
برای اینکه pacman سریعتر کار کنه، میتونیم از axel استفاده کنیم تا دانلودهامون رو برامون انجام بده. برای اینکار فایل تنظیمات pacman رو باز کنید و این خط رو بهش اضافه کنید:

XferCommand = /usr/bin/axel -n 4 -v -a -o %o %u

لینک‌های مرتبط

ساده کردن دستورهای pacman

نویسنده : امین | تاریخ: 1392/08/16

میخوام این بار در مورد این بنویسم که چطوری فرایند نصب یا حذف بسته ها از خط فرمان رو ساده تر کنیم. البته در آرچ.
مثلا برای نصب یک بسته از مخازن از دستور pacman -S استفاده میکنیم. برای اینکه این دستور رو ساده تر کنیم، مثلا با یه دستور دلخواه مثل ins این کار رو انجام بدیم، میایم این اسکریپت رو میسازیم.

sudo nano /usr/local/bin/ins
و این محتوی رو توش مینویسیم:
#!/bin/bash
sudo pacman -S "$@"
حالا کلید ctrl + x رو بگیرید و اینتر بزنید تا فایل ذخیره بشه. و بعد فایلمون رو مجوز اجرایی بهش میدیم:
sudo chmod +x /usr/local/bin/ins
حالا مثلا این طوری میتونیم یه بسته ای مثلا libgdata  رو  از مخازن نصب کنیم. به راحتی:
ins libgdata
برای عملکرد های دیگه ی pacman هم میشه این کار رو کرد. مثلا برای نصب یک بسته که دانلودش کردیم، میتونیم این محتوی رو در یک اسکریپت دیگه مثلا با نام pkg بکار ببریم:
#!/bin/bash
sudo pacman -U "$@"

مثلا برای نصب بسته ای که در یک لوکیشن خاصی قرار داره، کافیه در ترمینال تایپ کنیم pkg و اون بسته رو از توی فایل منیجر drag کنیم جلوش که آدرس محلش بیفته جلوی دستور.

و برای حذف بسته ها، این محتوی رو در اسکریپت دیگه ای مثلا با نام rem قرار بدیم:
#!/bin/bash
sudo pacman -R "$@"
انتخاب اسم های rem, pkg, ins به دلخواه شماست.

آخرین سرور های بسته های آرچ رو داشته باشید

نویسنده : امین | تاریخ: 1392/06/13

آرچ برای بسته های خودش سیستم جالبی رو داره. به این صورت که سرورهای مختلفی در سراسر دنیا بسته های آرچ رو در خودشون دارن. بنابراین شما میتونید بهترین سرور رو از نظر سرعت پیدا کنید و در لیست mirrors بسته ها قرار بدید. همه ی این کارها با این برنامه قابل انجام هست: reflector
اول این برنامه رو نصب کنید:
sudo pacman -S reflector
بعد این دستور رو اجرا کنید تا ۱۰ تا سرور پرسرعت به ترتیب لیست بشن.

sudo reflector --verbose -l 10 -p http --sort rate --save /etc/pacman.d/mirrorlist
برای اطلاعات بیشتر به منبع مراجعه کنید.

لینک‌های مرتبط