مدیر بسته (package manager) چیست ؟
اگه بخوام خیلی خیلی ساده بگم مدیر بسته (package manager) مجموعه ای از ابزار های نرم افزاری که فرایند نصب , آپدیت , پیکر بندی (configuring) و حذف نرم افزار را برای کامپیوتر شما به روش منسجم و یک پارچه انجام می دهد.
یه مدیر بسته (package manager) با بسته ها , توزیع های (distributions) نرم افزاری و دیتا در آرشیو فایل سر و کله میزند.
در اینجا فقط میخوام درباره مدیر بسته(package manager) pacman توضیح بدم.
ساختار همه ی دستورات پکمن به این شکل است:
pacman <operation> <options> <package(s)>
دستور پکمن رو وقتی نوشتیم , سه تا گزینه در مقابلش باید گذاشته بشه , اولی operation و دومی options ودر انتها نام پکیج (یا پکیج ها) نوشته شود.
نکته : ممکنه بعضی وقتا operation رو داشته باشی یا بعضی وقتا operation و options با هم داشته باشی یا در زمانی همه رو باهم داشته باشی.
شما میتونی برای این که بیشتر درکش کنی از دستور pacman -help استفاده کنی.
به عکس بالا توجه کن به جای operation , هشت تا دستور میتونیم بنویسیم:
pacman -USRQFDV
نکته کنکوری : همیشه یادت باشه operation با حرف بزرگ نوشته میشه.
حالا تصور کن هر کدام از این دستورات بالا برای خودشون چندین تا option دارن یعنی مثلا D- برای خودش چند تا option داره.
نکته کنکوری : یادت باشه همیشه option ها به صورت حروف کوچک نوشته میشن.
برای دیدن آپشن ها کافیه فقط از هر operation , دستور help- رو بزنی , مثلا میخوام بدونم operation -S چند تا option داره به مثال زیر توجه کن:
pacman -S -help
خوب همون جوری که دیدی S operation- چندین تا option دارد مثل
-w -s -l ,.....
نکته کنکوری : هرکدام از این حروف بیانگر یه کلمه خاص هستن مثل -i, --info
نکته کنکوری : به دو صورت میشه نوشت کی به صورت اختصار یا اسم کامل مثل -g, --groups
تا اینجای کار فهمیدیم این دستورات چی هستن , بریم واسه ترکیب کردنشون
آپدیت کردن دیتا بیست
برای این که هر مدیر بسته ای به درستی کار کند , باید با سرور های اصلی هماهنگ باشه , pacman هم همین طوره , برای به روز رسانی پایکاه داده pacman میتونی از دستور زیر استفاده کنی
sudo pacman -Sy --------------------------- operation S option y pacman <operation> <options> <package(s)>
آپدیت کردن نرم افزارها
sudo pacman -Syu --------------------------- operation S option yu
میتونی با ترکیب option های مختلف چندین دستور رو در یه دستور خلاصه کنی.
میتونی با استفاده از pacman پکیج ها رو به اصلاح upgrade/downgrade کنی یعنی میتونی هم تغییر ورژن بدی یا به ورژن آپدیت تر ارتقا بدی یا به ورژه قدیمی تر برگردی.
برای مثال، اگر بسته "xyz-1.5" را رو سیستم خود نصب کرده اما "xyz-1.4.9" آخرین نسخه در سرور اصلی است، pacman به "xyz-1.4.9" تنزل می دهد.
sudo pacman -Syuu sudo pacman -Syyuu
همان طور که متوجه شدی این دو دستور برای یه کار خاص باهم combined شدن یا ترکبیب شدن
نصب پکیج با pacman خیلی سادس , به دستور زیر دقت کن:
sudo pacman -S <package_name_1> <package_name_2>
این فرایند تمام وابستگی هارو شناسایی و مدیریت میکند
بعضی وقتا بسته ها از الگو های مشابهی می آید, به جای تایپ نام یکسان از brackets به عنوان میانبرد استفاده کنید, lمثال زیر تمام بسته های پایتون را نصب میکند:
sudo pacman -S python-{pip,py,pytest,pytest-runner}
بعضی وقتا دوست داری پکیج دانلود بشه ولی عملیات نصب رو انجام نده صرفا دوست داری دانلود بشه
از سوییج Sw- استفاده کن
sudo pacman -Sw <package_name>
فقط pacman از دانلود پکیج به شما اطلاع میده ولی چیزی نصب نمیشه , بعد از این که فایل دانلود شد پکیج به این فرمت ذخیره میشه.
<package_name>.tar.xz
و در مسیر زیر قرار میگیرد.
/var/cache/pacman/pkg
برای نصب بسته های جدا دانلود شده از U- استفاده میکنیم.
sudo pacman -U <package_name>.tar.xz
تمام بسته هایی که pacman دانلود میکند همیشه وجود دارد میتونی از این مسیر پیداش کنی و اونا رو ببینی.
ls /var/cache/pacman/pkg
اگه دنبال یه بسته خواص میگردی grep میتونه خیلی کمکت کنه.
ls /var/cache/pacman/pkg | grep <package_name>
اگه یه زمان نیاز داشتی یه پکیجی رو install/upgrade/downgrade میتونی از این دستور استفاده کنی.
بعضی وقتا اسم پکیج رو فراموش میکنی باید تو pacman جستجو کنی.
pacman -Ss <search_term>
یکم خروجی دستور آزاردهندس برای این که خوانا تر بشه میتونی از این روش استفاده کنی.
قدم اول : کسانی که vim بلد نیستن میتونن از nano استفاده کنن.
sudo vim /etc/pacman.conf
کلمه color رو از کامند در میاری دقیقا به مثال بالا توجه کن
وبعد ذخیره میکنی (shift=WS)
حالا pacman خوانا شد میشه نوع ورژن رو با رنگ دیگه تشخیص داد.
من از دستور grep خیلی لذت میبرم , شما میتونی دستور grep رو با pacman ترکیب کنی و ازش برای فهرست کردن بسته های موجود استفاده کنی خروجی رو میتونی با grep به اصلاح pipeline کنی تا همه پکیج های مورد نیازت رو نشان دهد.
pacman -Ssq | grep python
آیا به flag دستور Ssq- توجه کردی؟ این ترکیب همه پکیج های pacman را یک به یک نشان میدهد.من آن را به grep دادم تا فقط بسته های python3 را نشان دهد, احتمالا شما توضیحات کوتاه پکیج را دریافت نمیکنید.
ابزار دیگری برای انجام جستجو ها وجود دارد: اسم این ابزار (pacsearch) است , این ابزار با قالب بندی مناسب و رنگ بندی جذاب خروجی تمیز تری ارائه می دهد.به احتمال زیاد قبلا روی توزیع Arch خودتون نصبه اما اگر نصب نیست میتونی از دستور زیر استفاده کنی
sudo pacman -S pacman-contrib
حالا مراحل بالا رو به با استفاده از pacsearch انجام میدهیم
pacsearch python
تازه قابل خواندن شد.
دستور زیر تمام بسته های نصب شده روی سیستم شما رو لیست می کند
pacman -Q
شاید برسی این همه پکیج برات گیج گننده باشه تو میتونی از grep استفاده کنی تا پیدا کردن پکیج ها برات آسان تر بشه.
pacman -Q | grep linux
بعضی وقتا احتیاج داری اطلاعات دقیقی در مورد یه پکیج خاص داشته باشی میتونی از Qi- استفاده کنی.
pacman -Qi <package_name>
دستور Q- تنها اطلاعات بسته نصب شده را نشان می دهد.اگه دنبال آخرین اطلاعات در مورد یک بسته هستی میتونی از Si- استفاده کنی.
pacman -Si <package_name>
با استفاده از pacman میتونی پکج هایی که نصب کردی رو حذف نصب (uninstalling) کنی.
sudo pacman -R <package_name>
برای حذف یک پکیج همراه با تمام وابستگی هایش از ساختار زیر استفاده میکنیم.
نکته کنکوری : هیچ پکیج دیگری به آن وابستگی ها بستگی ندارد.
sudo pacman -Rs <package_name>
میتوان pacman را مجبور به حذف نصب کرد, مهم نیست که این پکیج وابستگی های دیگررا از بین میبرد یا نه.
sudo pacman -Rdd <package_name>
پکیج Pacman یک مدیریت بسته قدرتمند برای Arch Linux است.بدون آن هیچ پکیجی از آن عبور نمیکند.
حتی اگر پکیج هایی را از منابع دیگر مثل مخزن AUR بخوای نصب کنی باید قبلش از طریق pacman مراحل تکمیل نصب را کامل کنی. پس pacman یکی از اجزای جدا نشدنی اکوسیستم Arch است.
باید کم کم کار با terminal رو یاد بگیری و تا برات استفاده از لینوکس دل چسب تر بشه.