</>

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

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

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

Command Palette

Search for a command to run...

USE Flags در Gentoo

آشنایی کامل با USE Flags، نحوه مشاهده، تنظیم و سفارشی‌سازی بسته‌ها در زمان کامپایل.

متوسط۹ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

USE Flags چیست؟#

USE Flags مکانیزم منحصربه‌فردی در Gentoo است که با کمک آن می‌توانید قابلیت‌های هر بسته را در زمان کامپایل روشن یا خاموش کنید. وقتی بسته‌ای مانند www-client/firefox کامپایل می‌شود، می‌توانید تعیین کنید که آیا پشتیبانی از Wayland، PulseAudio یا AV1 فعال باشد. این کار باینری نهایی را سبک‌تر، سریع‌تر و امن‌تر می‌کند.

به‌عنوان مثال، اگر فقط از Wayland استفاده می‌کنید، می‌توانید پشتیبانی X11 را به‌طور کامل از GTK حذف کنید:

# نصب GTK فقط با Wayland و بدون X11
USE="wayland -X" emerge gui-libs/gtk

انواع USE Flags#

USE Flags به دو دسته اصلی تقسیم می‌شوند:

۱. سراسری (Global)#

این پرچم‌ها در /etc/portage/make.conf تعریف می‌شوند و روی همهٔ بسته‌ها اعمال می‌شوند:

# /etc/portage/make.conf
USE="wayland pulseaudio bluetooth nls ipv6 -systemd -X"

۲. محلی (Per-package)#

این پرچم‌ها در /etc/portage/package.use/ تعریف می‌شوند و فقط روی یک بستهٔ خاص اعمال می‌شوند:

# فعال کردن PulseAudio فقط برای Firefox
echo "www-client/firefox pulseaudio" > /etc/portage/package.use/firefox

مشاهده USE Flags#

مشاهده USE Flags سراسری فعال#

emerge --info | grep ^USE
# خروجی:
# USE="X wayland pulseaudio alsa bluetooth nls ipv6 ..."

مشاهده USE Flags یک بسته خاص#

equery uses www-client/firefox
# خروجی:
# - -acl        : ACL support
# + +alsa      : ALSA audio support
# - -debug     : Enable debugging
# + +pulseaudio : PulseAudio audio support

علامت + به معنای فعال بودن و علامت - به معنای غیرفعال بودن است. علامت اول، وضعیت فعلی و علامت دوم، وضعیت پیش‌فرض ebuild را نشان می‌دهد.

نحوه تنظیم USE Flags#

روش ۱: در make.conf#

ساده‌ترین راه، تعیین USE Flags در /etc/portage/make.conf است:

USE="wayland pulseaudio bluetooth nls"
USE="${USE} -systemd -X -doc"

روش ۲: در package.use#

برای کنترل دقیق‌تر، از پوشهٔ /etc/portage/package.use/ استفاده کنید:

# ایجاد فایل تنظیمات برای یک بسته
mkdir -p /etc/portage/package.use
echo "www-client/firefox pulseaudio wayland -ffmpeg" > /etc/portage/package.use/firefox
 
# یا فایل کلی
echo "dev-lang/python gdbm" >> /etc/portage/package.use/global

اولویت USE Flags

ترتیب اعمال USE Flags از کم به زیاد به این شکل است: پیش‌فرض ebuild، سپس Profile، سپس make.conf و در نهایت package.use. به این ترتیب تنظیمات per-package همیشه اولویت بالاتری دارد.

روش ۳: موقت در خط فرمان#

می‌توانید USE Flags را به‌صورت موقت در دستور emerge تعیین کنید:

USE="wayland -X" emerge gui-libs/gtk

احتیاط با USE موقت

USE Flags موقت فقط برای همان نصب اعمال می‌شوند و در به‌روزرسانی بعدی از بین می‌روند. برای ماندگاری، حتماً از make.conf یا package.use استفاده کنید.

جدول USE Flags رایج#

پرچمتوضیحتأثیر
Xپشتیبانی از X11فعال کردن کتابخانه‌های X11
waylandپشتیبانی از Waylandفعال کردن Wayland
pulseaudioسرور صوت PulseAudioاتصال به PulseAudio
alsaپشتیبانی از ALSAصوت مستقیم ALSA
bluetoothپشتیبانی از بلوتوثقابلیت اتصال بلوتوث
nlsبومی‌سازی رشته‌هاترجمه‌های زبانی
docساخت مستنداتنصب فایل‌های راهنما
testاجرای تست‌ها در زمان buildافزایش زمان کامپایل
debugاطلاعات دیباگباینری حجیم‌تر و کندتر
ipv6پشتیبانی از IPv6فعال کردن پروتکل IPv6
systemdادغام با systemdفقط در پروفایل systemd
opensslاستفاده از OpenSSLکتابخانه رمزنگاری

مثال کاربردی: نصب GTK فقط با Wayland#

فرض کنید می‌خواهید gui-libs/gtk را بدون پشتیبانی X11 نصب کنید:

# ۱. بررسی USE Flags فعلی GTK
emerge --info gui-libs/gtk | grep ^USE
 
# ۲. تعیین USE Flags در package.use
echo "gui-libs/gtk wayland -X -xinerama" > /etc/portage/package.use/gtk
 
# ۳. نصب با تأیید
emerge --ask gui-libs/gtk
 
# ۴. اعمال تغییرات در کل سیستم (اگر USE را در make.conf تغییر دادید)
emerge --ask --update --deep --newuse @world

تفاوت --newuse و --emptytree

پرچم --newuse فقط بسته‌هایی را بازسازی می‌کند که USE Flags آن‌ها تغییر کرده است. پرچم --emptytree کل سیستم را از نو کامپایل می‌کند و بسیار زمان‌بر است. برای تغییرات کوچک از --newuse استفاده کنید.

خطاهای رایج USE Flags#

۱. تغییر USE بدون --newuse#

اگر USE Flags را در make.conf تغییر می‌دهید اما --newuse اجرا نمی‌کنید، تغییرات اعمال نمی‌شوند:

# اشتباه: تغییر USE بدون اعمال مجدد
# (فقط بسته‌های جدید با USE جدید نصب می‌شوند)
 
# درست: اعمال تغییرات USE در کل سیستم
emerge --ask --update --deep --newuse @world

۲. تضاد USE Flags#

گاهی دو پرچم با هم ناسازگارند، مانند pulseaudio و alsa در برخی بسته‌ها:

!!! USE flag 'pulseaudio' conflicts with USE flag 'alsa' in www-client/firefox

راه‌حل: یکی را انتخاب کنید و دیگری را با علامت منفی غیرفعال کنید:

echo "www-client/firefox pulseaudio -alsa" > /etc/portage/package.use/firefox

۳. حذف قابلیت وابسته#

اگر USE Flag یک کتابخانه را غیرفعال کنید، بسته‌هایی که به آن وابسته‌اند ممکن است شکست بخورند. راه‌حل: پس از تغییر USE از revdep-rebuild استفاده کنید:

emerge --ask --update --deep --newuse @world
revdep-rebuild

هشدار — تغییرات بی‌گدار USE

هرگز USE Flags سراسری را بدون فکر تغییر ندهید. برای مثال، حذف nls یا ipv6 از make.conf می‌تواند ده‌ها بسته را دچار مشکل کند. همیشه پیش از تغییر، وابستگی‌ها را با emerge --pretend --update --newuse @world بررسی کنید و از --emptytree با احتیاط استفاده کنید.

خلاصه و مرحله بعد#

USE Flags قوی‌ترین ابزار سفارشی‌سازی Gentoo هستند؛ با آن‌ها می‌توانید بسته‌ها را دقیقاً مطابق نیاز خود بسازید. نکتهٔ کلیدی این است که تغییرات را در package.use به‌صورت per-package نگه دارید و از make.conf فقط برای پرچم‌های واقعاً سراسری استفاده کنید.

در مرحلهٔ بعد، اگر با Portage آشنایی کامل ندارید، آن را بخوانید. برای آشنایی با مفاهیم کلی سیستم، آموزش معماری Gentoo را ببینید.

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

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