</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

معماری 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-owner

Portage#

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.ebuild

Overlays#

اگر بسته‌ای در مخزن اصلی نباشد، می‌توانید از 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 نقطهٔ شروع عملی شماست.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.