سیستم عامل لینوکس جنتو را چگونه باید نصب کنیم؟ ابتدا مقداری باید با خود توزیع جنتو آشنا شویم سپس در صورتی که احساس نیاز کردیم اقدام به نصب آن کنیم. توزیع جنتو، لینوکسی مستقل و بر پایه کد منبع است، به این معنی که برای نصب جنتو و تمامی نرمافزارها باید کد هسته لینوکس و نرمافزارها را از مخازن خود جنتو توسط برنامه مدیریت بستهها (portage) گرفته و کامپایل کنیم. البته لازم به ذکر است که برنامهها به صورت خودکار توسط مدیر بسته portage کامپایل میشوند اما هسته لینوکس را باید دستی کامپایل کرده و یا از ابزار genkernel استفاده کنیم.
دلیل اینکه همه چیز را کامپایل کنیم چیست؟
دلایل زیادی برای این وجود دارد که مهمترین آنها موارد زیر هستند:
• اگر کاربر حرفهای لینوکس باشید میتوانید بهترین کارایی را در بین تمامی توزیعهای لینوکس بدست آورید.
• برای اهداف خاص، توزیع جنتو را آماده کنید به صورتی که هیچ چیز اضافهای نداشته باشد (در نتیجه کارایی و سرعت بالا و همچنین کم حجم بودن و پایداری را بدست آورید).
• شما میتوانید از هر نرمافزاری که قصد نصب آنها را دارید تنها تعدادی از ماژولهای آن را انتخاب کنید و بر اساس آن کامپایل کنید (افزایش سرعت نرمافزارها و پایداری بیشتر)
• از درون تمامی نرمافزارها با خبر میشوید و با نحوه کامپایل آنها آشنا میشوید.
• جنتو برای برنامهنویسی بسیار آمادهتر از دیگر توزیعهاست (زیرا شما برای نصب نرمافزارها آنها را کامپایل میکنید در نتیجه اکثر هدرها و کتابخانههای برنامه نویسی را آماده در اختیار دارید و نیازی به نصب آنها نیست).
• مطالب قسمت ویکی جنتو توسط افراد متخصص و شناخته شده نوشته شده و کاملاً معتبر هستند (ویکی توسط کاربران نوشته نمیشود).
با توجه به دلایل بیان شده میخواهیم اهداف مختلف را مورد بررسی قرار دهیم تا شما بهتر و مطمئنتر انتخاب کنید.
جنتو برای چه کسانی مناسب است؟
• اگر کار شما به گونهای است که بر روی دستگاههای نهفته (Embedded device) کار میکنید جنتو بهترین انتخاب برای شماست. زیرا میتوانید بهترین و مناسبترین سیستمعامل را برای خود آماده کنید و از سرعت و پایداری بالایی بهرهمند شوید.
• اگر سروری دارید که میخواهید کارایی بالا داشته باشید جنتو گزینه مناسبی است. البته به این نکته هم توجه کنید که برای به روز رسانی سرور و نرمافزارهای آن مدت زمان بیشتری نیاز خواهید داشت.
• اگر با زبان C++/C ، پایتون، جاوا، پرل، روبی و vala برنامه مینویسید بهخصوص کسانی که برای لینوکس نرمافزار توسعه میدهند بسیار مناسب است.
• اگر میخواهید گیک (geek) و یا نرد (nerd) شوید، این توزیع مخصوص شماست.
• اگر میخواهید لینوکس را قورت بدهید جنتو نصب کنید.
• اگر میخواهید عاشق لینوکس شوید جنتو نصب کنید.
جنتو برای چه کسانی مناسب نیست؟
• اگر تجربه کافی با توزیعهای لینوکس ندارید به هیچ عنوان سراغ جنتو نروید (خدای ناکرده از لینوکس زده میشوید!).
• اگر زمان کمی دارید سمت جنتو نروید، زیرا نصب آن خیلی طول میکشد، برای افراد حرفهای حداقل سه روز طول میکشد. البته بعد از نصب سیستم عامل و نرمافزارهای پایه باز هم برای نصب نرمافزار جدید باید صبور باشید (در گوشی با افرادی که زمان ندارند ولی عاشق گیک شدن هستند، پیگیر مطالب ما باشید راههایی را بیان خواهیم کرد که در مواقع ضروری به راحتی بتوانید از پس کمبود زمان بربیایید).
• اگر حوصله و صبر کافی ندارید به هیچ وجه سراغ جنتو نیایید.
• اگر اینترنت ندارید فکر جنتو را از سر بیرون کنید.
• اگر دائم به دنبال به روز بودن نرمافزارها هستید (آخرین ورژن) توزیع آرچ برای شما بهتر است (زیرا اگر هر روز بخواهید لیبره آفیس را به روز رسانی کنید و هر روز هفت ساعت کامپایل آن طول بکشد کچل میشوید!).
• برای لپتاپ زیاد مناسب نیست چون برای مدت زیادی صددرصد پردازنده شما مورد استفاده قرار میگیرد (البته نترسید با احتیاط عمل کنید لپتاپ خود را خنک کنید مشکلی نیست).
تجربه خودم با جنتو
من هم اکنون از جنتو و لیبره آفیس استفاده میکنم تا این مطلب را برای شما بنویسم. اگر لیبره آفیس پنج را نصب کرده باشید همه توزیعها با باگهایی روبرو میشوید که خودبهخود لیبره آفیس بسته میشود. اما من با کامپایل هفت ساعته لیبره آفیس در جنتو توانستم سرعت بسیار بالا و پایداری خوبی از لیبره آفیس بگیرم (البته این دلیل خوبی برای مهاجرت به جنتو نیست شما میتوانید روی توزیع خود کد منبع لیبره آفیس را گرفته و کامپایل کنید). چند تا از سختافزارهای لپتاپ من در توزیعهای دیگر کار نمیکرد که با تغییر در تنظیمات هسته لینوکس و در نهایت کامپایل آن در جنتو توانستم تمامی آنها را راه اندازی کنم (باز هم دلیل خوبی برای مهاجرت به توزیع جنتو نیست). این تجربیات را گفتم تا متوجه شوید که توزیع جنتو شما را چگونه مجبور به یادگیری و استفاده بهینه میکند.
نصب جنتو
اگر با خواندن مطالب بالا باز هم تصمیم به نصب جنتو دارید با ادامه مطلب همراه شوید.
توزیع جنتو اکثر سختافزارهای موجود را پشتیبانی میکند (لیست پردازندههای پشتیبانی شده را میتوانید از اینجا ببینید). ابتدا باید تصویر سیدی لایو کوچک جنتو مخصوص نصب اینترنتی جنتو را از اینجا دانلود کنید. برای نصب ۶۴ بیتی intel یا AMD از Minimal Installation CD نسخه amd64 و برای نصب ۳۲ بیتی از نسخه x86 آن استفاده کنید.
من نسخه amd64 آن را برای نصب انتخاب کردم.
حال فایل iso دانلود شده را بر روی سیدی رایت کرده و یا توسط dd آن را بر روی USB بنویسید.
برای نوشتن بر روی USB:
dd if=/home/amin/Downloads/install-amd64-minimal-20150924.iso of=/dev/USB
به جای /dev/USB باید آدرس فایل سختافزاری usb را مثلاً .برای من /dev/sdc بزنید. دقت کنید فایل سختافزاری را به درستی انتخاب کنید، در غیر این صورت ممکن است اطلاعات هارد شما توسط dd پاک شود. از روی سیدی و یا usb ایجاد شده بوت شوید.
تصویر بالا اولین چیزی است که بعد از بوت شدن مشاهده میکنید. در اینجا کلید F1 را بفشارید تا گزینههای ممکن را ببینید.
gentoo : هسته پیشفرض وعمومی
gentoo-nofb: مثل gentoo ولی بدون پشتیبانی از frame buffer (برای مواقعی که مشکل درایور گرافیک باشد).
memtest86: برای تست کردن حافظه ram کامپیوتر
شما هم مثل من بنویسید gentoo و کلید Enter را بزنید تا از این مرحله عبور کنید. حال سیستم بوت شده و آماده تنظیمات برای نصب میباشد.
این سیدی نصب برای این آماده شده که تمام سختافزار شما را بشناسد تا بتوانید نصب کنید پس احتمالاً شما نیز مشکلی نخواهید داشت در غیر این صورت به ویکی جنتو مراجعه نمایید.
حال پسورد یوزر root را عوض کنید با دستور passwd ، اگر میخواهید همزمان با نصب از ویکی جنتو استفاده کنید از مرورگر خط فرمان links استفاده کنید. برای اطمینان از اینکه به اینترنت متصل هستید از دستور زیر استفاده کنید.
ping -c 3 www.gentoo.org
در صورت متصل نبودن از دستور زیر استفاده کنید:
net-setup eth0
اگر باز با اتصال اینترنت مشکل داشتید از ویکی جنتو استفاده کنید.
حال باید هارد خود را پارتیشن بندی کنید اگر از بوت امن UEFI استفاده میکنید برای پارتیشنبندی با parted کار کنید اما اگر مثل من از MBR استفاده میکنید از fdisk استفاده کنید.
fdisk -t dos /dev/sda
حال پارتیشن swap را میسازیم.برای سیستمهای امروزی که دارای ram بالایی هستند، بیش از ۲ گیگابایت، پارتیشن swap به اندازه ram اختصاص داده شود کافی است. بقیه فضا را برای پارتیشن روت اختصاص دهید.
با n پارتیشنی جدید از نوع p یا e بر حسب نیاز میسازیم. شمارهای به پارتیشن اختصاص میدهیم مثلاً ۱ بعد کلید enter تا مقدار پیشفرض را انتخاب کند و بعد مقدار swap را تعیین میکنیم (+2G). دوباره n تا پارتیشن جدید برای روت بسازیم و بقیه فضا را به آن اختصاص دهد. حال a را میفشاریم تا پارتیشن روت را بوت پذیر کنیم. در آخر w را میزنیم تا تغییرات اعمال شود.
پس از بیرون آمدن از محیط fdisk باید دستور partprobe را بزنید تا جدول پارتیشنهای جدید خوانده شود. سپس باید فایل سیستم مورد نیاز را بر روی پارتیشنهای درست شده ایجاد کنیم.
برای پارتیشن swap از دستور زیر:
mkswap /dev/sda1
و برای پارتیشن روت از دستور زیر:
mkfs.ext4 /dev/sda2
استفاده میکنیم.
تذکر: برای این آموزش من از ماشین مجازی استفاده کردم. مطابق با نیاز خود باید آن را استفاده کنید و لزوماً اعداد و مقادیری که در این آموزش استفاده میشوند مقادیر مورد نیاز شما نیستند و باید بر اساس نیاز خود این مقادیر را تغییر دهید.
توجه: کسانی از بوت امن استفاده میکنند برای راهنمایی استفاده از parted به ویکی جنتو مراجعه نمایند.
توسط دستورات زیر پارتیشنهای ایجاد شده را مورد استفاده قرار میدهیم.
Swapon /dev/sda1
mount /dev/sda2 /mnt/gentoo
cd /mnt/gentoo
لینک آخرین stage3 موجود را از اینجا توسط links پیدا کرده و دانلود کنید.
پس از اتمام دانلود فایل stage3 که درواقع برنامههای پایه جنتو است با فشردن کلید q از links خارج شوید. و فایل دریافت شده را توسط دستور زیر از حالت فشرده خارج کنید.
tar xvjpf stage3-*.tar.bz2 –xattrs
پس از دستور فوق شما باید سیستم را برای کامپایل برنامهها آماده کنید. فایل تنظیمات مدیر بسته جنتو را توسط دستور زیر باز کنید.
nano -w /mnt/gentoo/etc/portage/make.conf
در این فایل CFLAGS و CXXFLAGS را مشاهده میکنید، که اولی برای کامپایل کد c و دومی برای کد cpp ورد استفاده قرار میگیرد. اگر با gcc آشنا نیستید بهتر است مقدار زیر را برای این دو متغیر در نظر بگیرید.
CFLAGS="-march=native -O2 -pipe"
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
مقدار اول march معماری پردازنده مقصد را مشخص میکند. وقتی آن را بر روی native قرار دهید، کامپایلر بر اساس پردازندهی فعلی به صورت خودکار تنظیم میشود.
مقدار دوم یا O2 کلاس بهینه سازی را برای کامپایلر تعیین میکند اگر مقدار صفر انتخاب شود هیچ بهینه سازی انجام نمیشود ولی مقدارهای ۱، ۲ و۳ بهترین مقدار برای بهینه سازی هستند. مقدار بهینه سازی در ۳ بیشتر از ۲ و ۲ بیشتر از یک است. اما پیشنهاد میشود از مقدار ۲ استفاده کنید زیرا این فایل تنظیمات برای کامپایل تمامی نرمفزارها مورد استفاده قرار میگیرد و مقدار ۳ در برخی موارد موجب اشکالاتی میشود.
مقدار سوم یا pipe برای این استفاده میشود که به جای ساختن فایلهای موقتی از پایپ بین کامپایل کدهای مختلف استفاده شود.
MAKEOPTS="-j۳"
قسمت بعد مربوط به متغیر MAKEOPTS هست که برای این مورد استفاده قرار میگیرد که از چند پردازنده به صورت موازی برای کامپایل استفاده شود. برای کارایی خوب میتوانید مقدار j را برابر تعداد پردازندهها یا تعداد core ها به علاوه یک در نظر گرفت. برای مثال j3 یعنی من دو core در پردازنده خود دارم. حال ctrl+x زده و خارج شوید. مرحله بعد اضافه کردن لیست سرورهای کمکی به تنظیمات مدیر بسته است که توسط دستور زیر صورت میگیرد.
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
و
cp -L /etc/resolv.conf /mnt/gentoo/etc/
chroot
در این مرحله باید برای رفتن به محل نصب جنتو آماده شوید. با این دستورات:
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
با دستورات زیر میتوانید محل روت سیستم را تغییر دهید.
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
Portage
سپس با دستور emerge-webrsync مدیر بسته portage را نصب میکنیم. پس از نصب مدیر بسته لیست مخازن را با دستور زیر بهروز رسانی میکنیم:
emerge --sync
Profile
حال موقع تصمیمگیری برای این است که چه میزکاری را میخواهید نصب کنید. دستور eselect برای انتخاب آن مورد استفاده قرار میگیرد:
eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd *
[6] default/linux/amd64/13.0/desktop/kde
[7] default/linux/amd64/13.0/desktop/kde/systemd
[8] default/linux/amd64/13.0/desktop/plasma
[9] default/linux/amd64/13.0/desktop/plasma/systemd
[10] default/linux/amd64/13.0/developer
[11] default/linux/amd64/13.0/no-multilib
[12] default/linux/amd64/13.0/systemd
[13] default/linux/amd64/13.0/x32
[14] hardened/linux/amd64
[15] hardened/linux/amd64/selinux
[16] hardened/linux/amd64/no-multilib
[17] hardened/linux/amd64/no-multilib/selinux
[18] hardened/linux/amd64/x32
[19] hardened/linux/musl/amd64
[20] hardened/linux/musl/amd64/x32
[21] default/linux/uclibc/amd64
[22] hardened/linux/uclibc/amd64
بعد از مشاهده لیست موجود توسط دستور زیر میتوانید پروفایل مورد نیاز خود را انتخاب نمایید. برای مثال من اینجا پروفایل شماره ۴ را انتخاب کردهام.
eselect profile set 4
نکته: مدیر سرویسهای لینوکس در توزیع جنتو توسط openrc به صورت پیشفرض انجام میشود که مدیر سرویسی بر پایه sysvinit بوده که بارگذاری همزمان سرویسها در آن میسر شده است و توسعهدهنده آن نیز تیم جنتو هستند. این مدیر سرویس سرعت خوبی دارد و با جنتو سازگاری کامل را داراست اما اگر میخواهید از میزکارهای مدرن استفاده کنید مثلاً از گنوم ورژنهای بالاتر از ۳.۸ باید systemd را جایگزین openrc کنید (ورژن فعلی گنوم ۳.۱۸ میباشد).
با توجه به نکتهی ذکر شده من از systemd استفاده میکنم و پروفایل را براساس آن انتخاب میکنم.
USE Flag
حال وقت آن رسیده است که متغیر USE در فایل تنظیمات portage را مقدار دهی کنیم. این متغیر برای portage مشخص مینماید که شما چه نرمافزارها و سرویسهایی نیاز دارید که در مرحله بعد با توجه به همین متغیر USE نرمافزارها را دانلود و نصب مینماید. برای مقدار دهی آن با دستور زیر فایل تنظیمات را باز کنید.
nano /etc/portage/make.conf
برای مشاهده لیست مقدارهای ممکن USE میتوانید از دستور زیر استفاده کنید:
emerge --info | grep ^USE
حال متغیر USE را مقدار دهی کنید. برای مثال:
USE="gtk gnome qt4 -kde dvd alsa cdr"
همانطور که مشاهده میکنید قبل از مقدار kde یک منفی آمده و به این معنی است که kde را نصب نکند. اما بقیه که بدون علامت منفی آمدهاند را نصب میکند.
منطقه زمانی
برای تنظیم منطقه زمانی ایران دستورات زیر را بزنید:
echo "Iran" > /etc/timezone
emerge --config sys-libs/timezone-data
زبان
ابتدا با دستور زیر
nano -w /etc/locale.gen
فایل را باز کرده و مقادیر زیر را در آن بنویسید و ذخیره کنید.
en_US.UTF-8 UTF-8
fa_IR UTF-8
پس از ذخیره کردن که توسط ctrl+x انجام میگیرد دستور زیر را اجرا کنید.
locale-gen
در این مرحله برای اینکه زبان کل سیستم تعیین شود از دستور زیر استفاده کنید:
eselect locale list
Available targets for the LANG variable:
[1] C
[2] POSIX
[3] en_US
[4] en_US.iso88591
[5] en_US.utf8
[6] de_DE
[7] de_DE.iso88591
[8] de_DE.iso885915
[9] de_DE.utf8
[ ] (free form)
و سپس زبان مورد نظر را با دستور زیر انتخاب کنید:
eselect locale set 5
نکته: در اینجا اگر فارسی را انتخاب کنید میز کار شما فارسی خواهد شد و اگر انگلیسی انتخاب کنید میزکار انگلیسی میشود. اکنون برای اعمال تغییرات دستور زیر را اجرا نمایید:
env-update && source /etc/profile
fstab
لینوکس برای اینکه متوجه شود که فایل سیستم روت بر روی چه پارتیشنی است و swap بر روی کدام پارتیشن این فایل را میخواند. همچنین اگر شما پارتیشنی دارید که میخواهید به صورت خودکار در زمان بوت mount شود باید از همین فایل استفاده کنید. توسط دستور زیر این فایل را باز کنید:
nano -w /etc/fstab
و بر اساس پارتیشنهایی که دارید این فایل را تنظیم نمایید. برای مثال چون در این آموزش swap را روی sda1 و روت را روی sda2 ایجاد کردیم به اینگونه تنظیم میشود:
#
/dev/sda2 / ext4 noatime 0 1
/dev/sda1 none swap sw 0 0
نصب هسته لینوکس
توسط دستور زیر با مدیر بسته کد هسته لینوکس را دانلود کنید:
emerge -a sys-kernel/gentoo-sources
برای کامپایل سادهتر و بهتر هسته لینوکس بهتر است از ابزار genkernel استفاده کنید. که با دستور زیر قابل نصب است.
emerge -a sys-kernel/genkernel
در صورتی که با کامپایل هسته لینوکس آشنایی دارید و همچنین سختافزار خود را به طور کامل میشناسید از دستور زیر استفاده کنید:
genkernel --menuconfig all
اما اگر با هسته لینوکس زیاد آشنایی ندارید از تنظیمات پیشفرض استفاده کنید که توسط دستور زیر انجام میشود:
genkernel all
نصب GRUB
اگر از بوت امن UEFI استفاده میکنید با دستورات زیر از طریق مدیر بسته گراب را نصب کنید.
echo GRUB_PLATFORMS="efi-64" >> /etc/portage/make.conf
emerge -a sys-boot/grub
و اگر از mbr استفاده میکنید با دستور زیر نصب کنید:
emerge -a sys-boot/grub
حال گراب را بر روی دیسک نصب کنید. برای بوت امن دستور زیر:
grub2-install --target=x86_64-efi --efi-directory=/boot
و برای mbr از دستور زیر استفاده کنید:
grub2-install /dev/sda
کاربرانی که از systemd استفاده میکنند باید فایل تنظیمات گراب را تغییر دهند. به این صورت ابتدا فایل تنظیمات باز کنید:
nano /etc/default/grub
سپس متغیر زیر را به این صورت مقدار دهی نمایید.
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd dolvm rootfstype=ext4"
حال باید تنظیمات قابل خواندن در زمان بوت را به صورت زیر ایجاد کنید:
grub2-mkconfig -o /boot/grub/grub.cfg
کارت گرافیک
برای کارتهای گرافیک معمولاً هم راه انداز متن باز وجود دارد و هم راه انداز مربوط به شرکت تولید کننده آن. باید به portage اعلام کنید که از کدام راه انداز میخواهید استفاده کنید.
برای مثال اگر کارت گرافیک شما Nvidia باشد هم میتوانید از راه انداز nouveau که متن باز است استفاده کنید و هم nvidia که خود شرکت سازنده آن را ایجاد کرده است. برای مشخص کردن اینکه از متن باز استفاده میکنید دستور زیر را اجرا کنید:
echo VIDEO_CARDS="nouveau" >> /etc/portage/make.conf
و برای استفاده از راه انداز غیر متن باز از دستور زیر استفاده کنید:
echo VIDEO_CARDS="nvidia" >> /etc/portage/make.conf
نصب برنامهها
توسط دستور زیر از USE flag ایجاد شده در مراحل قبل استفاده کرده و نرمافزارها را نصب میکنیم:
emerge --ask --newuse --deep @world
با این دستور کلیه نرمافزارهای تعیین شده نصب میگردند. این عمل بسیار طول میکشد (چندین ساعت).
ایجاد کاربر جدید
در میزکارها معمولاً از کاربری غیر از روت ایجاد میشود و به همین منظور شما نیاز دارید کاربر جدید بسازید. این کاربر باید برای اینکه بتواند از برخی امکانات استفاده کند عضو گروههایی باشد که این اجازه به وی داده شود. پس توسط دستورات زیر کاربر جدید را بسازید.
useradd -m -G users,wheel,audio -s /bin/bash amin
passwd amin
ریبوت
پس از انجام مراحل بالا از محیط chroot خارج شوید. با دستور زیر:
exit
سپس دستورات زیر را بزنید و ریبوت شوید.
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount /mnt/gentoo{/boot,/sys,/proc,}
reboot
تبریک میگویم. شما موفق شدید.
نکاتی در مورد emerge
همیشه در نصب نرمافزارها توسط emerge از سوییچ ask یا a استفاده کنید و اگر پیغامی داد که باید چند فایل درون etc بهروز رسانی شود از دستور زیر استفاده کنید تا خود سیستم این کار را برای شما انجام دهد:
etc-update
ثبت نظر