FLATPAK BUILD(1) flatpak build FLATPAK BUILD(1)

flatpak-build - اجرای دستور ساخت در یک دایرکتوری

flatpak build [OPTION...] DIRECTORY [COMMAND [ARG...]]

یک دستور ساخت (build) را درون یک دایرکتوری اجرا می‌کند. DIRECTORY باید از قبل با استفاده از flatpak build-init مقداردهی اولیه شده باشد.

محیط توسعه نرم‌افزار (sdk) که در فایل metadata درون این پوشه مشخص شده است در مسیر /usr و زیرپوشه‌های files و var به‌ترتیب در مسیرهای /app و /var سوار (mount) می‌شوند. این مسیرها قابل نوشتن هستند و محتویات آن‌ها بین دستورات ساخت حفظ می‌شود تا امکان جمع‌آوری خروجی‌های ساخت در آنجا فراهم باشد.

گزینه‌های زیر پشتیبانی می‌شوند:

-h, --help

نمایش گزینه‌های راهنما و خروج.

-v, --verbose

چاپ اطلاعات اشکال‌زدایی در طول پردازش دستور.

--ostree-verbose

چاپ اطلاعات اشکال‌زدایی OSTree در طول پردازش دستور.

-r, --runtime

استفاده از محیط زمان اجرای غیرتوسعه‌ای مشخص‌شده در فرادادهٔ برنامه به‌جای محیط زمان اجرای توسعه (devel).

-p, --die-with-parent

کشتن فرآیند ساخت و تمام فرزندان آن در هنگام خاتمه یافتن فرآیند اجراکننده.

--bind-mount=DEST=SOURCE

افزودن یک اتصال سفارشی (bind mount) در فضای نام ساخت. این گزینه می‌تواند چندین بار مشخص شود.

--build-dir=PATH

شروع فرآیند ساخت در این دایرکتوری (پیش‌فرض، دایرکتوری جاری است).

--share=SUBSYSTEM

اشتراک‌گذاری یک زیرسیستم با نشست میزبان. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. SUBSYSTEM باید یکی از موارد زیر باشد: network، ipc. این گزینه می‌تواند چندین بار استفاده شود.

--unshare=SUBSYSTEM

عدم اشتراک‌گذاری یک زیرسیستم با نشست میزبان. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. SUBSYSTEM باید یکی از موارد زیر باشد: network، ipc. این گزینه می‌تواند چندین بار استفاده شود.

--socket=SOCKET

در دسترس قرار دادن یک سوکت شناخته‌شده برای برنامه. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. SOCKET باید یکی از موارد زیر باشد: x11، wayland، fallback-x11، pulseaudio، system-bus، session-bus، ssh-auth، pcsc، cups، gpg-agent، inherit-wayland-socket. این گزینه می‌تواند چندین بار استفاده شود.

--nosocket=SOCKET

عدم دسترسی برنامه به یک سوکت شناخته‌شده. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. SOCKET باید یکی از موارد زیر باشد: x11، wayland، fallback-x11، pulseaudio، system-bus، session-bus، ssh-auth، pcsc، cups، gpg-agent، inherit-wayland-socket. این گزینه می‌تواند چندین بار استفاده شود.

--device=DEVICE

در دسترس قرار دادن یک دستگاه برای برنامه. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. DEVICE باید یکی از موارد زیر باشد: dri، input، usb، kvm، shm، all. این گزینه می‌تواند چندین بار استفاده شود.

--nodevice=DEVICE

عدم دسترسی برنامه به یک دستگاه. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. DEVICE باید یکی از موارد زیر باشد: dri، input، usb، kvm، shm، all. این گزینه می‌تواند چندین بار استفاده شود.

--allow=FEATURE

اجازهٔ دسترسی به یک ویژگی خاص. این گزینه گروه [Context] را در فراداده به‌روزرسانی می‌کند. FEATURE باید یکی از موارد زیر باشد: devel، multiarch، bluetooth، canbus، per-app-dev-shm. این گزینه می‌تواند چندین بار استفاده شود.

برای آشنایی با معانی ویژگی‌های گوناگون، flatpak-build-finish(1) را ببینید.

--disallow=FEATURE

عدم اجازهٔ دسترسی به یک ویژگی خاص. این گزینه گروه [Context] را در فراداده به‌روزرسانی می‌کند. FEATURE باید یکی از موارد زیر باشد: devel، multiarch، bluetooth، canbus، per-app-dev-shm. این گزینه می‌تواند چندین بار استفاده شود.

--filesystem=FILESYSTEM[:ro|:create]

اجازهٔ دسترسی برنامه به زیرمجموعه‌ای از سیستم‌فایل. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. FILESYSTEM می‌تواند یکی از موارد زیر باشد: home، host، host-os، host-etc، host-root، xdg-desktop، xdg-documents، xdg-download، xdg-music، xdg-pictures، xdg-public-share، xdg-templates، xdg-videos، xdg-run، xdg-config، xdg-cache، xdg-data، یک مسیر مطلق، یا یک مسیر نسبی به پوشهٔ خانگی مانند ~/dir یا مسیرهای نسبی به دایرکتوری‌های xdg مانند xdg-download/subdir. پسوند اختیاری :ro نشان می‌دهد که مسیر فقط‌خواندنی خواهد بود. پسوند اختیاری :create نشان می‌دهد که مسیر خواندنی-نوشتنی است و در صورت عدم وجود ایجاد می‌شود. این گزینه می‌تواند چندین بار استفاده شود. برای جزئیات مربوط به معانی این سیستم‌فایل‌ها، به فهرست "[Context] filesystems" در flatpak-metadata(5) مراجعه کنید. پیش از فلت‌پک ۱.۱۷.۰، دسترسی به host به‌طور پیش‌فرض داده می‌شد.

--nofilesystem=FILESYSTEM

حذف دسترسی به زیرمجموعهٔ مشخص‌شده از سیستم‌فایل از برنامه. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. FILESYSTEM می‌تواند یکی از موارد زیر باشد: home، host، host-os، host-etc، host-root، xdg-desktop، xdg-documents، xdg-download، xdg-music، xdg-pictures، xdg-public-share، xdg-templates، xdg-videos، یک مسیر مطلق، یا یک مسیر نسبی به پوشهٔ خانگی مانند ~/dir. این گزینه می‌تواند چندین بار استفاده شود.

--with-appdir

در دسترس قرار دادن و پیکربندی دسترسی به پوشهٔ ذخیره‌سازی اختصاصی هر برنامه در $HOME/.var/app. این گزینه معمولاً هنگام ساخت کاربردی ندارد، اما برای آزمایش برنامه‌های ساخته‌شده مفید است.

--add-policy=SUBSYSTEM.KEY=VALUE

افزودن گزینهٔ خط‌مشی عمومی. برای نمونه، "--add-policy=subsystem.key=v1 --add-policy=subsystem.key=v2" به این فراداده نگاشت می‌شود:
[Policy subsystem]
key=v1;v2;

این گزینه می‌تواند چندین بار استفاده شود.

--remove-policy=SUBSYSTEM.KEY=VALUE

حذف گزینهٔ خط‌مشی عمومی. این گزینه می‌تواند چندین بار استفاده شود.

--env=VAR=VALUE

تنظیم یک متغیر محیطی در برنامه. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--unset-env=VAR

حذف یک متغیر محیطی در برنامه. این گزینه ورودی unset-environment در گروه [Context] فراداده و همچنین گروه [Environment] را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--env-fd=FD

خواندن متغیرهای محیطی از توصیف‌گر فایل FD و تنظیم آن‌ها به‌گونه‌ای که گویی از طریق --env اعمال شده‌اند. از این گزینه می‌توان برای جلوگیری از مشاهده‌پذیر شدن متغیرهای محیطی و مقادیر آن‌ها برای سایر کاربران استفاده کرد.

هر متغیر محیطی در قالب VAR=VALUE به همراه یک بایت صفر در انتها است. این همان قالبی است که توسط env -0 و /proc/*/environ استفاده می‌شود.

--own-name=NAME

اجازه دادن به برنامه برای تملک نام شناخته‌شدهٔ NAME روی گذرگاه نشست (session bus). این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--talk-name=NAME

اجازه دادن به برنامه برای گفتگو با نام شناخته‌شدهٔ NAME روی گذرگاه نشست. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--system-own-name=NAME

اجازه دادن به برنامه برای تملک نام شناخته‌شدهٔ NAME روی گذرگاه سیستم (system bus). این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--system-talk-name=NAME

اجازه دادن به برنامه برای گفتگو با نام شناخته‌شدهٔ NAME روی گذرگاه سیستم. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--persist=FILENAME

اگر برنامه به پوشهٔ خانگی واقعی دسترسی ندارد، مسیر (نسبی به پوشهٔ خانگی) FILENAME را به یک پیوند اتصالی (bind mount) به مسیر متناظر در پوشهٔ اختصاصی برنامه تبدیل می‌کند، که امکان نگهداری دائمی داده‌ها را در آن مکان فراهم می‌سازد. این گزینه بخش Context فرادادهٔ برنامه را بازنویسی می‌کند. این گزینه می‌تواند چندین بار استفاده شود.

--sdk-dir=DIR

به‌طور معمول اگر پوشه‌ای به نام usr در دایرکتوری ساخت وجود داشته باشد، برای فایل‌های محیط زمان‌اجرا استفاده می‌شود (این پوشه می‌تواند با آرگومان‌های --writable-sdk یا --type=runtime در دستور build-init ایجاد شده باشد). اگر --sdk-dir را مشخص کنید، به‌جای آن از این پوشه استفاده خواهد شد. اگر در build-init از --sdk-dir استفاده کرده‌اید، اینجا نیز از آن استفاده کنید.

--readonly

سوار کردن دایرکتوری‌های مقصد که معمولاً قابل نوشتن هستند به‌صورت فقط‌خواندنی. این گزینه زمانی مفید است که می‌خواهید چیزی را درون محیط ایزوله (sandbox) اجرا کنید و مطمئن شوید که تغییری در نتایج ساخت ایجاد نمی‌کند، مانند اجرای آزمون‌ها.

--metadata=FILE

استفاده از فایل مشخص‌شده به‌عنوان فراداده در برنامهٔ صادرشده به‌جای فایل پیش‌فرض (به نام metadata). این گزینه زمانی مفید است که چندین مورد را از یک درخت ساخت واحد تولید می‌کنید (مانند ساخت همزمان پلتفرم و sdk).

--log-session-bus

ثبت لاگ ترافیک گذرگاه نشست (session bus). این گزینه می‌تواند برای بررسی اینکه چه دسترسی‌هایی را باید در خط‌مشی D-Bus مجاز کنید، مفید باشد.

--log-system-bus

ثبت لاگ ترافیک گذرگاه سیستم (system bus). این گزینه می‌تواند برای بررسی اینکه چه دسترسی‌هایی را باید در خط‌مشی D-Bus مجاز کنید، مفید باشد.

$ flatpak build /build/my-app rpmbuild my-app.src.rpm

flatpak(1), flatpak-build-init(1), flatpak-build-finish(1), flatpak-build-export(1)

flatpak