اسکریپتی برای کار با pacman

مدتها بود که یک اسکریپت دم دستی رو برای راحت تر کردن فانکشنهای پکمن استفاده می‌کردم. که البته ایرادهای فنی و اسکریپتی زیادی داشت. سر انجام با راهنمایی های چند تا دوست خوب توی گروه های آرچ، دستی به سر و روی اسکریپت کشیدم. 

هدف این اسکریپت اینه که یک سری عملکردهای رایج و به درد بخور پکمن رو که بعضا دستورات بلندی میشن و نمیشه به یاد سپرد، به دستورات کوتاه تبدیل کنیم.

Screenshot from 2024-06-18 12-13-14.png 

ویژگی ها و کارهایی که این اسکریپت میکنه:

  • استفاده از یک AUR Helper به دلخواه خودتون (پیشفرض: yay)
  • استفاده از sudo یا doas به دلخواه خودتون (پیشفرض: sudo)
  • جست و جوی پکیج ها در مخازن رسمی و AUR
  • نصب پکیج (ها) چه از مخازن چه از فایل، با یک دستور ثابت
  • پیدا کردن بسته ای که صاحب یک فایل خاصی است
  • نمایش اطلاعات یک بسته
  • حذف بسته ها با/بدون حذف بسته های وابسته
  • حذف بسته های orphan
  • آپدیت کل سیستم با کمک AUR Helper 
  • یافتن سریعترین میرورها (با reflector)
  • نمایش دپندنسی های یک بسته
  • نمایش بسته هایی که به یک بسته وابسته هستند.
  • نمایش محتوای یک فایل درون فایل فشرده یک بسته tar
  • نمایش لیستی از بسته ها با این ویژگیها:
    • تمامی پکیج ها (نصب شده یا نشده)
    • بسته های نصب شده
    • بسته های orphan
    • بسته هایی که خارج از پکیج منیجر نصب کردیم
    • بسته هایی که هیچ بسته دیگه ای به اونها وابستگی نداره
    • بسته هایی که قابل بروزرسانی هستن
    • قابلیت جست و جوی بسته ها درون این لیست ها
  • ذخیره یک فایل در پوشه کاربر حاوی لیست تمامی پکیج های نصب شده
  • پاک‌سازی کش پکمن
  • آنلاک کردن دیتبایس با حذف فایل db.lck

ادامه مطلب

Cover Image

انتقال یک Arch به هارد جدید

اخیرا یک هارد SSD خریدم و بر آن شدم تا آرچی که روی HDD نصب داشتم منتقل کنم روی SSD. کار سختی نیست، ولی باید چهارچوب قضیه رو توی ذهنتون ترسیم کنین و بدونین که دقیقا قراره چه کاری بکنین. 

سناریوهای مختلف و روش های مختلفی برای این کار وجود داره. اصطلاحا به این کار میگن clone کردن. یعنی شما یک کپی نظیر به نظیر از یک فایل سیستم (درایو) در یک فایل سیستم دیگه می‌سازید. و پیکربندی های مربوط به بوت لودر رو هم انجام میدید و سیستم با دیسک جدید بالا میاد.

تیتروار قراره چه کار بکنیم؟

  • پارتیشن بندی دیسک جدید
  • کلون کردن پارتیشنی که آرچ روی اون نصبه روی پارتیشن یک دیسک جدید.
  • نصب مجدد پکیج کرنل 
  • نصب بوت لودر (مثلا grub) روی دیسک جدید
  • تغییر محتوای fstab بر اساس پارتیشن های جدید

چند سناریو رو مطرح میکنم:

  1. شما یک لپتاپ دارید که فقط یک هارد HDD داره. میخواید اون رو با یک SSD اینترنال SATA تعویض کنید.
    • خب یا باید هر دو هارد همزمان روشن باشن که بتونین اطلاعات رو کلون کنید، مثلا یک باکس خالی هارد اکسترنال دارید که HDD رو میذارید داخلش و SSD رو هم میذارید داخل لپتاپ. یا مثلا لپتاپ شما دو تا پورت SATA داره و میتونید هر دو هارد رو همزمان متصل کنید. (مثلا جای DVD ROM)
    • یا اینکه امکان روشن بودن همزمان هاردها رو ندارید. در این صورت باید اول از HDD اطلاعات رو کلون کنید روی یک فلش مموری، بعد HDD رو در بیارید و SSD رو جایگزین کنید و سپس از روی فلش مموری کلون کنید روی SSD.
  2. شما یک لپتاپ دارید که میخواید HDD رو نگه دارید، و یک SSD از نوع NVMe بهش اضافه کنید و سیستم عامل رو از روی HDD به اون منتقل کنید.

اینکه چه سناریویی با شما همخوانی داره، خدا میدونه! به تعداد آدم ها راه هست برای پارتیشن بندی برای لینوکس! من در این مطلب کلیت ماجرا رو میگم. شما بر اساس شرایط خودتون باید عمل کنید.

ادامه مطلب

تغییر در مدیریت microcode در Arch

اگر از  Arch Linux استفاده میکنید و برای ساختن ایمیج کرنل از mkinitcpio استفاده میکنید، و همچنین بسته های microcode مربوط به CPU رو هم دارید (اینتل یا AMD) در ورژن ۳۸ از mkinitcpio تغییری در نحوه مدیریت microcode برای ساخت ایمیج کرنل در پروسه بوت اتفاق افتاده که میبایست به اون توجه کنیم. در واقع در ورژن جدید، ایمیج microcode دیگه جدا از ایمیج کرنل نخواهد بود و با هم ادغام میشن. مراحل زیر هنوز در wiki نیومده. ولی در اینجا میتونید پیشنویس‌ها رو ببینید.

  1. سیستم رو آپدیت کنید تا همه چیز بروزرسانی بشه.
  2. اگر فایل /etc/mkinicpio.conf رو دستکاری نکردید، بعد از آپدیت هم لازم نیست تغییرش بدید. با آپدیت، این فایل هم بروزرسانی میشه. اما اگر دستکاریش کردید، این فایل رو باز کنید و یک HOOK تحت نام microcode به قسمت مربوطه اضافه کنید. در هر صورت مطمئن بشید که این هوک وجود داشته باشه.
  3. سپس فایل preset مربوط به کرنلی که دارید (عموما /etc/mkinitcpio.d/linux.preset) رو باز کنید و خط مربوط به microcode رو حذف کنید یا کامنت کنید.
  4. سپس با دستورsudo mkinitcpio -P ایمیج کرنل رو بسازید.
  5. در نهایت باید خطوط مربوط به لود ایمیج microcode رو در بوت لودر خودتون (حالا هر چی که هست، grub یا systemd-boot یا rEFInd و...) حذف کنید.




حاصل سر و کله زدن های من با لینوکس