معماری Gentoo
آشنایی با اجزای اصلی Gentoo: Stage tarball، Portage، Profile، USE Flags و پرچمهای کامپایلر.
معماری Gentoo چیست؟
معماری Gentoo مجموعهای از اجزا و لایههاست که در کنار هم سیستمی منعطف و بهینه میسازند. برخلاف توزیعهای باینری که تنها یک سیستم مدیریت بسته دارند، در Gentoo باید با مفاهیمی مانند Stage tarball، Profile، ebuild و USE Flags آشنا باشید. این صفحه نقشهٔ کامل معماری Gentoo است.
جریان کلی ساخت سیستم
نصب Gentoo از یک Stage tarball آغاز میشود و با افزودن لایههای بعدی به یک سیستم کامل میرسد. این جریان را میتوانید در نمودار زیر ببینید:
[Stage3 tarball]
|
v
[Chroot + mount /proc /sys /dev]
|
v
[Portage snapshot + انتخاب profile]
|
v
[تنظیم make.conf: CFLAGS, USE, FEATURES]
|
v
[نصب کرنل (gentoo-sources یا dist-kernel)]
|
v
[نصب بوتلودر (GRUB)]
|
v
[سیستم پایه + ابزارهای ضروری]
|
v
[محیط دسکتاپ یا سرور]Stage1 و Stage2 منسوخ شدهاند
در گذشته Gentoo سه Stage داشت: Stage1 از ابزار کامپایلر شروع میکرد، Stage2 یک سیستم پایهٔ آماده داشت و Stage3 محیط کاملتر بود. امروزه تنها Stage3 بهعنوان نقطهٔ شروع رسمی پشتیبانی میشود و Stage1 و Stage2 منسوخ شدهاند.
Stage Tarball
Stage tarball یک آرشیو tar.xz است که حداقل سیستم پایهٔ Gentoo را در خود دارد: glibc، GCC، binutils، Portage و ابزارهای اولیه. نصب از Stage3 معمولترین روش است.
# دانلود و استخراج Stage3
cd /mnt/gentoo
wget https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-openrc/stage3-amd64-openrc-*.tar.xz
tar xpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-ownerPortage
Portage قلب Gentoo است؛ سیستم مدیریت بستهای که با دستور emerge کار میکند. Portage شامل ebuildها، مخزن اصلی Gentoo و ابزارهای کمکی مانند equery و revdep-rebuild است. معرفی کامل آن در آموزش Portage آمده است.
Profile
هر نصب Gentoo به یک Profile وصل است که مجموعهای از پیشفرضهای USE Flags، نسخههای پایدار و تنظیمات سیستم را تعیین میکند. انتخاب پروفایل درست، نقطهٔ شروع هر سیستم است:
# مشاهده پروفایلهای موجود
eselect profile list
# انتخاب پروفایل دسکتاپ با OpenRC
eselect profile set default/linux/amd64/23.0/desktopانتخاب پروفایل درست
پروفایل desktop برای ایستگاه کاری با محیط گرافیکی مناسب است، در حالی که پروفایل server برای سرورها سبکتر است. هرگز پروفایل systemd را با سرویس OpenRC ترکیب نکنید.
USE Flags
USE Flags مکانیزمی است که با کمک آن قابلیتهای هر بسته را روشن یا خاموش میکنید. این پرچمها در زمان کامپایل اعمال میشوند و باینری نهایی را سفارشی میکنند. برای مثال USE="wayland -X" یعنی فقط Wayland پشتیبانی شود و X11 کامپایل نشود. جزئیات در آموزش USE Flags.
Ebuild
هر بسته در Gentoo توسط یک ebuild توصیف میشود: یک اسکریپت Bash با پسوند .ebuild که شامل آدرس سورس، وابستگیها، مراحل build و install و قابلیتهای اختیاری است. ebuildها در مسیر /var/db/repos/gentoo/ ذخیره میشوند.
# مشاهده ebuild یک بسته
find /var/db/repos/gentoo -name "vim-*.ebuild"
# خروجی: /var/db/repos/gentoo/app-editors/vim/vim-9.1.0.ebuildOverlays
اگر بستهای در مخزن اصلی نباشد، میتوانید از Overlays (مخازن اضافی) استفاده کنید. ابزار app-eselect/eselect-repository مدیریت آنها را ساده میکند:
# نصب ابزار مدیریت overlays
emerge --ask app-eselect/eselect-repository
# افزودن overlay گورو (Guru)
eselect repository enable guru
emaint sync -r guruپرچمهای کامپایلر
یکی از نقاط قوت Gentoo، کنترل کامل پرچمهای کامپایلر است. این پرچمها در /etc/portage/make.conf تعیین میشوند:
# /etc/portage/make.conf
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
# تعداد کار کامپایل موازی
MAKEOPTS="-j8"
# قابلیتهای Portage
FEATURES="buildpkg parallel-fetch"احتیاط با -march=native
پرچم -march=native باینری مخصوص پردازندهٔ فعلی میسازد. اگر قصد دارید همین بسته را روی پردازندهٔ دیگری اجرا کنید، از این پرچم استفاده نکنید، چون ممکن است باینری روی پردازندهٔ قدیمیتر اجرا نشود.
جدول اجزای کلیدی معماری
| جزء | توضیح | محل |
|---|---|---|
| Stage3 | نقطه شروع نصب با سیستم پایه حداقلی | /mnt/gentoo |
| Portage | سیستم مدیریت بسته | /usr/lib/portage/python |
| ebuild | اسکریپت build هر بسته | /var/db/repos/gentoo/ |
| Profile | پیشفرضهای USE و کلمات کلیدی | /etc/portage/make.profile |
| USE Flags | قابلیتهای compile-time | /etc/portage/make.conf و package.use |
| Overlay | مخزن بسته اضافی | /var/db/repos/<name> |
| make.conf | تنظیمات کلی Portage | /etc/portage/make.conf |
خطاهای رایج معماری
۱. ترکیب پروفایل systemd با OpenRC
اگر پروفایل OpenRC را انتخاب کردهاید اما بستهٔ sys-apps/systemd را نصب میکنید، سیستم init دچار تداخل میشود. راهحل: پروفایل و سرویس init را هماهنگ نگه دارید.
۲. تغییر CFLAGS بدون بازسازی سیستم
اگر COMMON_FLAGS را تغییر میدهید، بستههای قبلی با پرچمهای قدیمی باقی میمانند. برای بازسازی کامل:
emerge --ask --emptytree @world۳. نادیده گرفتن package.use سراسری
تغییر مکرر USE در make.conf بههمریختگی ایجاد میکند. بهتر است تنظیمات per-package را در /etc/portage/package.use/ نگه دارید.
خلاصه و مرحله بعد
معماری Gentoo بر سه پایه استوار است: Stage3 بهعنوان نقطهٔ شروع، Portage بهعنوان قلب مدیریت بسته، و Profile و USE Flags بهعنوان ابزار سفارشیسازی. درک این اجزا پیش از نصب ضروری است.
در مرحلهٔ بعد، آموزش Portage را بخوانید تا با دستورات اصلی emerge آشنا شوید. اگر هنوز نصب را آغاز نکردهاید، آموزش Stage3 نقطهٔ شروع عملی شماست.
این صفحه در تاریخ ۱ تیر ۱۴۰۵ بهروزرسانی شده است.