شما هنوز به سیستم وارد نشده اید.
سلام
توی این پست میخوام چندتا نکته ی کوچک درباره ی pkgfile بگم, قرار نیست خیلی طولانی بشه چون اگه بشه دیگه جاش توی ویکی هست آرچ یه ابزار قدرتمند داره به اسم pkgfile که باهاش کارهای مختلفی میشه کرد برای مثال میشه دیتابیس های مخازن را آپدیت کرد یا اگر برای اجرا یه برنامه ای خطا میگیرم که فلان کتابخونه نصب نیست بریم و ببینیم کدوم بسته را باید نصب کنیم که اون کتابخونه نصب بشه و همینطور به همون میگه که اون بسته توی کدوم مخزن قرار داره و ....
ابتدا با دستور زیر بسته ی pkgfile را نصب کنید:
sudo pacman -S pkgfile
بعد از نصب pkgfile یکبار دیتابیس های مخازن را با خود pkgfile آپدیت کنید:
sudo pkgfile --update
حالا مثلا میخوایم با دستور locate یه چیزی را پیدا کنیم و خطا میده که دستور locate نداریم, در این لحظه ما دستور نصب locate را میزنیم ولی بسته ای به اسم locate در مخازن نیست پس چیکار میکنیم؟! خب pkgfile اینجا به دردمون میخوره پس:
pkgfile locate
خروجی:
[[email protected] ~]$ pkgfile locate
core/mlocate
پس باید بسته ی mlocate را نصب کنیم اینکار را برای کتابخونه ها هم میشه کرد برای مثال من میخوام یه چیزی را اجرا کنم ولی ارور میده که libphp7.so را نصب نداری, منم نمیدونم باید کدوم بسته را نصب کنم که این کتابخونه نصب بشه پس دستور زیر را میزنم:
pkgfile libphp7.so
خروجی:
[[email protected] ~]$ pkgfile libphp7.so
extra/php-apache
extra/php-embed
حالا به قدرت آرچ ایمان میارید؟ و اکثرهم لا یعقلون
آخرین ویرایش توسط حسین حیدری (2016-05-15 22:09:43)
Just an anime fan
آفلاین
واقعا واقعا واقعا جاش خالی بود. البته شما اشاره کردید که توضیح بیش ازین منجر به حالتی شبیه ویکی میشه. اما قطعا man pkgfile هم برای مطالعه بیشتر توصیه میشه. علی الخصوص این نکته که دیتابیس pkgfile برمبنای ریپوهایی هست که توی کانف پکمن هستن. بنابراین تصور کنید چقدر میتونه دایره عملکردش وسیع باشه.
من هم اولین بار توسط سعید با این ابزار آشنا شدم:
http://bbs.archusers.ir/viewtopic.php?pid=624#p624
البته پکمن از ورژن ۵ به بعد این خاصیت pkgfile رو به خودش اضافه کرده (گرچه خواص دیگر pkgfile هنوز مخصوص به خودش هستن). بهرحال این رو هم با خود پکمن امتحان کنید:
$ sudo pacman -Fy
$ pacman -Fs libphp7.so
پ ن: همچنین برای توضیحات بیشتر راجع به فیچرهای جدید پکمن اینجا رو ببینید:
https://git.archlinux.org/pacman.git/tree/NEWS?h=v5.0.0
این لینک نشون میده چگونه پکمن یک سیر صعودی فوق العاده داره و با جرات آخر من پیجش این جملات رو نوشته:
BUGS
Bugs? You must be kidding; there are no bugs in this software. But if we happen to be wrong, send us an email with as much
detail as possible to [email protected].
آفلاین
توی مانجارو *ظاهرا* بخاطر اینکه file.ها موقع ساختن ریپوهای مخازن تشکیل نمیشن، بنابراین مستقیما نمیشه از pkgfile استفاده کرد. اما خب میشه یه ترفند کوچیک بکار برد. ایده اینه: برای استفاده از pkgfile، ما نیاز به file.های محتویات ریپوها داریم. پس برای یه لحظه یکی از مخازن آرچ رو اضافه می کنیم، حالا دیتابیس مخزن رو آپدیت می کنیم. بعد دیتابیس pkgfile رو آپدیت می کنیم. حالا مخزن آرچ رو حذف می کنیم و دیتابیس سیستم رو برمبنای مخزنهای خود مانجارو آپدیت می کنیم. اتفاقی که افتاد این بود که دیتابیس pkgfile (البته برمبنای مخزن آرچ) تشکیل شد (= دایرکتوری var/cache/pkgfile/ که pkgfile اطلاعاتش رو ازونجا برمیداره) و ما همین رو میخوایم (البته همین جا معلومه بسته های اختصاصی مخازن مانجارو جا جاموندن. اما بهرحال، باتوجه به اینکه معمولا بسته ها توی ریزفایلهاشون (علی الخصوص کتابخونه ها) بسیاری مواقع اشتراک دارن و همینطور یکسان بودن خیلی از بسته ها توی مانجارو و آرچ، pkgfile در همین روش با تقریب خیلی خوبی کار خواهد کرد). فرض کنیم توی مانجارو هستیم:
۱- بسته pkgfile-git رو از aur نصب کنید.
۲- یکی از میرورهای آرچ رو انتخاب کنید (مثلا برید به https://www.archlinux.org/mirrorlist/ و یه لیست از میرورها رو جنریت کنید و یکیشون رو بردارید). این میرور برای من همیشه خوب کار کرده:
Server = http://archlinux.de-labrusse.fr/$repo/os/$arch
۳- این ها رو به ترتیب بزنید:
$ sudo sed -i -e '1iServer = http://archlinux.de-labrusse.fr/$repo/os/$arch\' /etc/pacman.d/mirrorlist
$ sudo pacman -Syy
$ sudo pkgfile --update
$ sudo sed -i '1d' /etc/pacman.d/mirrorlist
$ sudo pacman -Syy
پ.ن: البته من سعی کردم با repo-add از طریق ساختن یه مخزن محلی از ریپوهای اصلی مانجارو file.های لازم رو بسازم که موفق نشدم و مجبور شدم ازین روش کثیف استفاده کنم.
پ.ن۲: درمورد استفاده از pacman -Fs هم میشه در مرحله ۳ بجای sudo pkgfile --update از sudo pacman -Fy استفاده کرد.
آخرین ویرایش توسط Arcush (2016-06-30 16:38:02)
آفلاین