موارد زیادی ممکنه پیش بیاد که لازم داشته باشیم بفهمیم یک فایل مربوط به چه بسته ای است. مثلا در باز کردن یک برنامه خطایی دریافت میکنیم مبنی بر اینکه مثلا cannot load shared object file libvoikko.so.1. یعنی این فایل رو پیدا نکرده...
برای اینکه بفهمیم فایل مورد نظر متعلق به چه بسته ای است که ما نداریمش، در توزیع های مبتنی بر Arch دو راه داریم. یکی استفاده از pacman و یکی استفاده از pkgfile. البته قبلش باید یک بار دیتابیس فایلها رو داشته باشیم. برای بروز رسانی دیتابیس:
$ sudo pacman -Fy
$ pkgfile libvoikko.so.1
$ pacman -F libvoikko.so.1
اما اگر بخوایم بفهمیم یک فایل مشخصی در یک مسیر، مربوط به کدوم یک از بسته های نصب شده است، از سوییچ -Qo
استفاده میکنیم. مثلا:
$ pacman -Qo /usr/share/dbus-1/services/org.gnome.Nautilus.service
اگر لازم داشتیم در یک فایل متنی خطوطی رو که یک عبارت مشخصی در اونها وجود داره حذف بشن، میتونیم از sed استفاده کنیم. به طور مثال من میخوام mpv رو از لیست پیشنهادی open with حذف کنم. چون رابط گرافیکی اون یعنی Celluloid برای پخش فایلهای مدیا کافیه. برای این کار:
$ sed -i.bak '/mpv/d' ~/.local/share/applications/defaults.list
$ sed -i.bak '/mpv/d' ./.local/share/applications/mimeapps.list
اگر در Arch لازم داشتید یک نسخه قدیمیتر از پکیج مورد نظرتون رو نصب کنید، و فایلش رو در اختیار نداشتید، میتونید توی این آدرس دنبالش بگردید. سپس میتونید با pacman اون رو نصب کنید. به طور مثال:
$ pacman -U https://archive.archlinux.org/packages/path/packagename.pkg.tar.zst
اطلاعات بیشتر رو میتونید در این لینک از ویکی آرچ ببینید. مثلا میتونید پکیج های سیستم رو به یک تاریخ خاصی downgrade کنید و...
فایل منیجر پیش فرض گنوم، موسوم به Nautilus یا Files قابلیت این رو داره که اکستنشن هایی بهش اضافه بشن. این افزونه ها در مخازن توزیع های مختلف وجود دارند. در این مطلب چند تا از افزونه هایی که برای من کاربردی بودند رو براتون لیست میکنم. در توزیع های آرچ، این افزونه ها از طریق AUR قابل نصب هستند:
appimage-thumbnailer-git
یک افزونه است که آیکن برنامه هایی رو که از طریق Appimage اجرا میشن به ما نشون میده.
nautilus-compare
یک افزونه که وقتی رایت کلیک کنید روی مثلا دو تا فایل مشابه، اونها رو با هم مقایسه میکنه. این مقایسه در برنامه های جانبی مثل meld
قابل انجام هست.
nautilus-hide
یک افزونه که به راحتی با رایت کلیک روی یک فایل میتونید اون رو مخفی کنید. بدون اضافه کردن (.
) به ابتدای اسم فایل. در واقع میاد اسم فایل رو در یک فایل به نام .hidden
اضافه میکنه که باعث میشه اون فایل مخفی بشه.
nautilus-emblems
با رایت کلیک روی یک فایل یا فولدر میتونید یک نماد کوچک در گوشه آیکن اضافه کنید. مثلا مشخص کنید که این فایل رو قراره بعدا بررسی کنید. یا مثلا کارهاتون رو تا این فایل پیش بردید و...
nautilus-admin
یک آیتم به رایت کلیک اضافه میشه، برای باز کردن اون فولدر در حالت root.
nautilus-annotations
یک افزونه که امکان اضافه کردن یادداشت به فایلها و فولدرها رو فراهم میکنه!
در ویکی آرچ مخازن غیر رسمی متعددی نام برده شده اند که کاربران میتونن اونها رو به لیست مخازن 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 بفهمونید.
حاصل سر و کله زدن های من با لینوکس