مطالبی چند در مورد /etc/portage
متاسفانه آدمی نیستم که از طریق راههای مرسوم و سرراست به دانشی که لازمه دست پیدا کنم. برای مثال همین عنوانی که در اینجا نوشتم. من از طریق استدلالهای استنتاجی در مورد اینکه فایلهای درون این شاخه چه کاری انجام میدن به نتایجی رسیدم که امیدوارم درست باشه! البته امیدورام نحوه بیان غیرحرفهای ما رو ببخشین
خب ، حالا این فایلها و دایرکتوریها چی هستند؟
1 - make.conf
ما بصورت عادی برای کامپایل یک بسته مثل ffmpeg بعد از مرحله کانفیگ کردن و چک کردن نیازمندیها توسط ./configure به کامپایلر میگیم که پردازنده ما دو هستهائیه و این کار رو با دستور make -j2 انجام میدیم. خب چون قراره در اینجا emerge تمام این کارها رو انجام بده ما یکبار برای همیشه ! این دستور رو توی این فایل ذخیره میکنیم . همچنین در USE موجود توی این فایل هم براس تعیین میکنیم که چه ترجیحاتی رو لحاظ قرار بده برای مثال ما که از qt و kde استفاده میکنیم توی USE با -gtk دستور میدیم که بسته رو بر اساس qt کامپایل کنه (اگه اشتباه نکنم)
خلاصه اینکه تنظیمات مربوط به کامپایلر ، نوع ویدیو کارت و از این دست توی این فایل قرار میگیره.
2 - package.mask
بذارین اینو با یه مثال توضیح بدم. خُب کارت گرافیک من GT220 ه. که اگه بخوام بصورت عادّی براش درایور مربوط به nvidia رو نصب کنم آخرین ورژن درایو کارت گرافیکی با دستور emerge nvidia-drivers نصب میشه در صورتیکه این درایور با کارت من سازگار نیست و رده کارتهای گرافیکی من درایورهای کمتر از nvidia-drivers-341.0.0 رو ساپورت میکنه پس توی این فایل به emerge میفهمونیم که در صورت آپدیت شدن نسخه درایور فقط در صورتیکه نسخه پایینتر از این نسخه آپدیت شده اونو برای من دانلود کن نسخههای
>=x11-drivers/nvidia-drivers-341.0.0
پس ما اینجا بستههایی رو مسک میکنیم تا در صورت لزوم تنها بستههایی که براشون قانون تعیین کردیم دانلود بشن. بستههای پیشین ، یا بستههایی بروزتر از یک ورژن.
3 - package.license
همونطور که از اسمش پیداست مربوط به لایسنس بعضی محصولات مثل adobe-flash هست و ما برای اینکه اونا رو نصب کنیم باید لایسنسهای اونا رو مدنظر قرار بدیم.
4- package.accept_keywords
در صورتیکه شما بخوای بستهی خاصی رو روی سیستم نصب کنید ، بستههایی که بصورت پایدار برای یک نسخه درنظر گرفته میشه بصورت پیش فرض انتخاب میشن. برای مثال یک نسخه خاص از کرنل (در حال حاضر 4.0.5) یا فایرفاکس (نسخه 31) براتون نصب میشه ولی توی شاخه portage ایبیلدهای مخصوص نسخههای اخیر هم وجود داره. برای اینکه بتونین این نسخهها رو نصب کنید به emerge دستور میدید که بجای نسخهی در نظر گرفته شده نسخهای که شما بهش گفتین رو نصب کنه.
(البته یه سری چیزها هم داره که من نمیفهمم که اگه شما بگین خوشحالمون میکنین :D )
5- دایرکتوری patches
در این شاخه و شاخه هایی که زیرش قرار دارند مثلا زیر شاخه www-client و زیر شاخهی firefox شما میتونین پچی که خودتون دوست دارین رو برای نسخهای از برنامه که قراره نصب بشه قرار بدین تا سورس به همراه اون پچ کامپایل بشه.
6- package.use اینو مطمئن نیستم چندان!!
توی این فایل بنا به اینکه توی فایل make.conf و در قسمت USE یک سری از فلگها باعث استفاده نشدن یک سری بسته ها میشد (چه روان توضیح دادم!!!) برای مثال با -gtk شما دستور به استفاده نشدن gtk دادید ولی برخی بستههایی که نصب خواهید کرد به این بسته نیاز خواهند داشت برای همین شما دستور میدین برای بستههای خاصّی در حین کامپایل بستههایی که توی USE اونها رو ممنوع کردین یا اینکه اصلا توی USE وجود نداره استفاده بشه.
پ ن: هدفم از نوشتن پست این بوده که یک توضیحی برای این شاخه داشته باشیم تا آدم سردرگم نشه و بدونه با دستوراتی که وارد میکنه چه کاری انجام میده، لذا اگه اشتباه یا کوتاهیای هست بگین درست کنیم :)
- ۹۴/۰۴/۲۰