B4-1

پیوندها

۳ مطلب در تیر ۱۳۹۴ ثبت شده است

آپدیت کرنل

يكشنبه, ۲۱ تیر ۱۳۹۴، ۰۳:۲۴ ق.ظ

از اونجایی که توی لینوکس آپدیت کردن خودش عمل لذت بخشیه و یکی از چیزهای لذت بخش برای آپدیت کردن کرنلِ می‌خواستم تجربه‌ی خودم رو در این زمینه بنویسم تا شاید بکارتون بیاد.

خب بصورت عادی بعد از اینکه شما با دستور

#emerge --sync

شاخه portage رو بروز می‌کنید و با دستوراتی مثل

#emerge -uDN @world

تمام بسته‌هایی که امکان آپدیت شدن دارند رو آپدیت می‌کند یکی از چیزهایی که ممکنه آپدیت بشه سورس کرنل یا همون gentoo-sources هست . برای اینکه ببینید که آیا چند ورژن از سورس کرنل رو روی سیستمتون دارید می‌تونید با دستور

#eselect kernel list
output: برای من
Available kernel symlink targets:
[1] linux-4.0.5-gentoo *

  لیستی از کرنل‌ سورس‌های موجود رو که در شاخه /usr/src قرار دارند ببینید. و طبعا بعد از انجام این دستور شما سورس کرنلی رو که به صورت پیش‌فرض برای کامپایل درایورهای سخت‌افزاری مورد استفاده قرار می‌گیره رو بصورت یک علامت * در روبرو می‌بینید. این سورس کرنل همون سورس کرنلی هست که بصورت شورتکات توی /usr/src به دایرکتوری linux لینک شده.

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

#eselect kernel set number

بجای number عددی که به عنوان شماره کرنل روبروی سورس قرار داده شده رو وارد می‌کنید و به این صورت مسیر پیش‌فرض /usr/src/linux به سورس کرنل جدید اشاره می‌کنه.

اگر مثل من حوصله سر و کلّه زدن زیاد و یا اطلاعات کافی ندارین با دستور

#genkernel all

شروع به کامپایل کرنل جدید بکنید و پس از گذشتن زمانی (بسته به cpu شما که چند هسته‌ای باشه و غیره) این کار به پایان می‌رسه. و باید تنظیمات مربوط به LILO یا GRUB رو بر مبنای کرنل جدید آپدیت کنید.

که فک کنم برای LILO شما پس از ویراییش فایل /etc/lilo.conf با دستور

#lilo -v

بوت لودر رو تازه سازی می‌کنید

و در Grub2 هم کافیه که با دستور

#grub2-mkconfig -o /boot/grub/brub.cfg

تنظیمات گراب رو آپدیت کنید.

حالا مرحله بعدی اینه که ما درایورهای سخت‌افزاری که پیشتر بصورت خودکار شناسایی نشده (برای مثال درایور کارت گرافیک کارت صدا و …) رو دوباره نصب کنیم که اگه نسخه‌ی جدیدی براش نیومده باشه و همچنین  توی مسیر /usr/portage/distfiles باشه نیاز به دانلود هم نیست و در مجموع زمان زیادی هم نمی‌بره :)

همچنین پس از نسخه قبلی اگه مثل من از این عادت‌ها دارین که کرنل قدیمی رو پاک کنید با استفاده از  eclean کارتون راه میافته ، برای نصبش از
#emerge eclean-kernel
استفاده کرده و در نهایت توی ترمینال از خدمات نقدی و غیر نقدی‌اش استفاده ببرین

پ ن: سعی کنید کرنل‌های قدیمی رو بعد از اطمینان کامل از اینکه کرنل جدید بخوبی کار می‌کنه و مشکلی براتون درست نمی‌کنه پاک کنید تا مثل من به مشکل برنخورین :D

  • محمد یاری

Yakuake

شنبه, ۲۰ تیر ۱۳۹۴، ۰۸:۱۰ ق.ظ

آدمِ به ظاهرِ دسکتاپ اهمیت‌دهنده‌ای هستم. از KDE استفاده می‌کنم. و بعد از Gnome 3 ترجیح دادم به جای استفاده از تسک منیجر از گوشه‌ی سمت چپ بالا! برای مشاهده‌ی پنجره‌ها استفاده کنم. و حال اینکه وقتی پنجره‌های زیادی باز باشن سوئیچ کردن بینشون یک کمی سخت می‌شه و از اونجایی که ترمینال یک چیز پر استفاده است و پر سوئیچ کردنه! بهترین کار استفاده از یک شورتکات برای دسترسی سریعه. و اگه چیزی که این قابلیت رو به همراه میاره زیبا هم باشه که چه بهتر :D

برای همین منطور شما می‌تونین از Yakuake استفاده کنید و با نصب از طریق

#emerge yakuake 

و اجرا کردنش از طریق کلید F12 بهش دسترسی سریع داشته باشین.  برای اینکه مجبور نباشین هر بار بعد از اجرای مجدد ویندوز مجبور نباشین راه‌اندازی کنین yakuake رو می‌تونین از قسمت system setting>>startup & shutdown >>add program برنامه‌ی yakuake رو ادد کنید تا بعد از بالا اومدن سیستم خودش اجرا بشه.

نمایی از آن مرحوم :

  • محمد یاری

مطالبی چند در مورد /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 وجود نداره استفاده بشه.

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

  • محمد یاری