انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

dpkg-buildflags - آنلاین در ابر

dpkg-buildflags را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور dpkg-buildflags است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


dpkg-buildflags - پرچم‌های ساخت را برای استفاده در حین ساخت بسته برمی‌گرداند

خلاصه


dpkg-buildflags [انتخاب...] [فرمان]

شرح


dpkg-buildflags ابزاری برای بازیابی پرچم های کامپایل برای استفاده در حین ساخت دبیان است
بسته ها پرچم‌های پیش‌فرض توسط فروشنده تعریف می‌شوند، اما می‌توان آن‌ها را گسترش داد/ لغو کرد
چندین راه وجود دارد:

1. در سراسر سیستم با /etc/dpkg/buildflags.conf;

2. برای کاربر فعلی با $XDG_CONFIG_HOME/dpkg/buildflags.conf جایی که
$XDG_CONFIG_HOME پیش فرض به $HOME/.config;

3. به طور موقت توسط کاربر با متغیرهای محیطی (به بخش مراجعه کنید محیط زیست);

4. به صورت پویا توسط نگهدارنده بسته با متغیرهای محیطی تنظیم شده از طریق
دبیان/قوانین (بخش را ببینید محیط زیست).

فایل های پیکربندی می توانند شامل دو نوع دستورالعمل باشند:

مجموعه پرچم ارزش
پرچم نامگذاری شده را لغو کنید پرچم برای داشتن ارزش ارزش.

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

پیوستن پرچم ارزش
پرچم نامگذاری شده را گسترش دهید پرچم با ضمیمه گزینه های داده شده در ارزش. یک فضا است
اگر مقدار فعلی پرچم خالی نباشد به مقدار اضافه شده اضافه می شود.

PREPEND پرچم ارزش
پرچم نامگذاری شده را گسترش دهید پرچم با قرار دادن گزینه های داده شده در ارزش. یک فضا است
اگر مقدار فعلی پرچم خالی نباشد، به مقدار از پیش تعیین شده اضافه می شود.

فایل های پیکربندی می توانند حاوی نظراتی در خطوطی باشند که با هش (#) شروع می شوند. خالی
خطوط نیز نادیده گرفته می شوند.

دستورات


--زباله همه پرچم های کامپایل و مقادیر آنها را در خروجی استاندارد چاپ کنید. یک پرچم را چاپ می کند
در هر خط که با علامت مساوی از مقدار آن جدا می شود ("پرچم=ارزش”). این است
اقدام پیش فرض

-- لیست لیست پرچم های پشتیبانی شده توسط فروشنده فعلی را چاپ کنید (یک عدد در هر خط). را ببینید
پشتیبانی شلاق ها بخش برای اطلاعات بیشتر در مورد آنها.

--وضعیت
نمایش هر گونه اطلاعاتی که می تواند برای توضیح رفتار مفید باشد
dpkg-buildflags (از dpkg 1.16.5): متغیرهای محیطی مرتبط، جریان
فروشنده، وضعیت همه پرچم‌های ویژگی. همچنین پرچم های کامپایلر حاصل را با چاپ کنید
منشاء آنها

این برای اجرا در نظر گرفته شده است دبیان/قوانین، به طوری که لاگ ساخت یک شفاف نگه می دارد
ردی از پرچم های ساخت استفاده شده این می تواند برای تشخیص مشکلات مرتبط با آن مفید باشد
آنها.

--صادرات=قالب
به دستورات خروجی استاندارد چاپ کنید که می توان از آنها برای صادرات تمام کامپایل استفاده کرد
پرچم برای برخی از ابزار خاص. اگر قالب ارزش داده نمی شود، sh فرض بر این است.
فقط پرچم‌های تلفیقی که با حروف بزرگ شروع می‌شوند گنجانده شده‌اند
فرض می شود که برای محیط زیست مناسب نیستند. فرمت های پشتیبانی شده:

sh شل دستور می دهد تا تمام پرچم های کامپایل را در آن تنظیم و صادر کند
محیط. مقادیر پرچم نقل‌قول می‌شوند تا خروجی آماده باشد
ارزیابی توسط یک پوسته

cmdline
آرگومان هایی برای انتقال به خط فرمان برنامه ساخت برای استفاده از همه
پرچم های کامپایل (از dpkg 1.17.0). مقادیر پرچم در پوسته نقل شده است
نحو.

پیکربندی
این نام مستعار میراثی برای است cmdline.

ساخت دستورالعمل هایی را برای تنظیم و صادرات همه پرچم های تلفیقی در
محیط. خروجی را می توان در یک قطعه makefile نوشت و ارزیابی کرد
با استفاده از شامل بخشنامه.

--گرفتن پرچم
مقدار پرچم را روی خروجی استاندارد چاپ کنید. اگر پرچم مشخص باشد با 0 خارج می شود
در غیر این صورت با 1 خارج می شود.

--اصل و نسب پرچم
مبدا مقداری را که توسط آن برگردانده شده است چاپ کنید --گرفتن. اگر پرچم با 0 خارج می شود
در غیر این صورت با 1 خارج می شود. مبدا می تواند یکی از مقادیر زیر باشد:

فروشنده پرچم اصلی تعیین شده توسط فروشنده بازگردانده می شود.

سیستم پرچم توسط یک پیکربندی سراسری سیستم تنظیم/اصلاح می‌شود.

کاربر پرچم توسط یک پیکربندی خاص کاربر تنظیم / اصلاح می شود.

env پرچم توسط یک پیکربندی خاص محیطی تنظیم/اصلاح می‌شود.

--کوئری-ویژگی ها منطقه
ویژگی های فعال شده برای یک منطقه مشخص را چاپ کنید (از dpkg 1.16.2). تنها
در حال حاضر مناطق شناخته شده در دبیان و مشتقات هستند qa, قابل تکرار, ضدعفونی کردن
و سخت شدن، نگاه کنید به خصیصه مناطق بخش برای جزئیات بیشتر با 0 خارج می شود اگر
منطقه شناخته می شود در غیر این صورت با 1 خارج می شود.

خروجی با فرمت RFC822 با یک بخش در هر ویژگی است. مثلا:

ویژگی: پای
فعال: خیر

ویژگی: محافظ پشته
فعال: بله

--کمک نمایش پیام استفاده و خروج.

- نسخه
نسخه را نشان دهید و خارج شوید.

پشتیبانی شلاق ها


CFLAGS گزینه هایی برای کامپایلر C. مقدار پیش فرض تعیین شده توسط فروشنده شامل -g و
سطح بهینه سازی پیش فرض (-O2 معمولا، یا -O0 اگر DEB_BUILD_OPTIONS
متغیر محیطی تعریف می کند نه).

CPPFLAGS
گزینه هایی برای پیش پردازنده C. مقدار پیش فرض: خالی

CXXFLAGS
گزینه هایی برای کامپایلر ++C. مثل CFLAGS.

OBJCFLAGS
گزینه هایی برای کامپایلر Objective C. مثل CFLAGS.

OBJCXXFLAGS
گزینه هایی برای کامپایلر Objective C++. مثل CXXFLAGS.

GCJFLAGS
گزینه هایی برای کامپایلر جاوا گنو (gcj). زیر مجموعه ای از CFLAGS.

FFLAGS گزینه هایی برای کامپایلر Fortran 77. زیر مجموعه ای از CFLAGS.

FCFLAGS
گزینه هایی برای کامپایلر Fortran 9x. مثل FFLAGS.

LDFLAGS
گزینه‌هایی که هنگام پیوند دادن فایل‌های اجرایی یا اشیاء مشترک به کامپایلر ارسال می‌شوند (اگر
لینکر مستقیماً نامیده می شود -Wl و , باید از این گزینه ها حذف شوند).
مقدار پیش فرض: خالی

در صورت نیاز ممکن است در آینده پرچم‌های جدیدی اضافه شوند (مثلاً برای پشتیبانی از دیگران
زبان ها).

خصیصه مناطق


هر یک از ویژگی های ناحیه را می توان در قسمت فعال و غیرفعال کرد DEB_BUILD_OPTIONS و
DEB_BUILD_MAINT_OPTIONS مقدار مساحت متغیر محیطی با '+'و'-اصلاح کننده.
به عنوان مثال، برای فعال کردن سخت شدن ویژگی “pie” و غیرفعال کردن ویژگی “fortify” شما
می تواند این کار را در دبیان/قوانین:

صادرات DEB_BUILD_MAINT_OPTIONS=سخت شدن=+پای،-تقویت

ویژگی خاص تمام (معتبر در هر منطقه) می تواند برای فعال یا غیرفعال کردن همه مناطق استفاده شود
ویژگی های همزمان بنابراین غیرفعال کردن همه چیز در سخت شدن منطقه و فعال کردن
فقط "format" و "fortify" را می توان با:

صادرات DEB_BUILD_MAINT_OPTIONS=سخت شدن=-همه،+فرمت،+ تقویت

qa
چندین گزینه زمان کامپایل (به تفصیل در زیر) می توانند برای کمک به تشخیص مشکلات در مورد استفاده شوند
کد منبع یا سیستم ساخت.

اشکال این تنظیم (به طور پیش فرض غیرفعال است) هر گزینه هشداری را که به طور قابل اعتماد شناسایی می کند اضافه می کند
کد منبع مشکل ساز هشدارها کشنده است.

قناری این تنظیم (به طور پیش‌فرض غیرفعال است) گزینه‌های قناری ساختگی را به پرچم‌های ساخت اضافه می‌کند، بنابراین
که لاگ های ساخت را می توان برای نحوه انتشار پرچم های ساخت بررسی کرد و اجازه داد
یافتن هرگونه حذفی از تنظیمات پرچم ساخت معمولی. تنها در حال حاضر پشتیبانی می شود
پرچم ها هستند CPPFLAGS, CFLAGS, OBJCFLAGS, CXXFLAGS و OBJCXXFLAGS با پرچم های تنظیم شده به
-D__DEB_CANARY_پرچم_تصادفی شناسه__و LDFLAGS مجموعه را به -Wl,-z,deb-canary-تصادفی شناسه.

ضدعفونی کردن
چندین گزینه زمان کامپایل (به تفصیل در زیر) می توانند برای کمک به پاکسازی نتیجه استفاده شوند
باینری در برابر خرابی حافظه، نشت حافظه، استفاده پس از رایگان، مسابقه داده رشته و
اشکالات رفتاری تعریف نشده

نشانی
این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -fsanitize=آدرس به LDFLAGS و
-fsanitize=آدرس -fno-omit-frame-pointer به CFLAGS و CXXFLAGS.

موضوع این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -fsanitize=نخ به CFLAGS, CXXFLAGS و
LDFLAGS.

نشت این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -fsanitize=نشت به LDFLAGS. می شود
به طور خودکار غیرفعال می شود اگر یکی از این موارد باشد نشانی یا موضوع ویژگی ها فعال هستند، به عنوان
آنها به آن اشاره می کنند.

تعریف نشده
این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -fsanitize=تعریف نشده به CFLAGS, CXXFLAGS
و LDFLAGS.

سخت شدن
چندین گزینه زمان کامپایل (به تفصیل در زیر) می توانند برای کمک به سخت شدن نتیجه استفاده شوند
باینری در برابر حملات تخریب حافظه، یا ارائه پیام های هشدار اضافی در طول
تلفیقی. به جز مواردی که در زیر ذکر شد، اینها به طور پیش فرض برای معماری هایی فعال هستند که
از آنها حمایت کنید

قالب این تنظیم (به طور پیش فرض فعال است) اضافه می کند -فرمت -خطا=فرمت-امنیت به CFLAGS,
CXXFLAGS, OBJCFLAGS و OBJCXXFLAGS. این موضوع در مورد رشته فرمت نامناسب هشدار می دهد
استفاده می‌کند، و زمانی که توابع قالب‌بندی به‌گونه‌ای استفاده شوند که ممکن است استفاده شوند، شکست خواهند خورد
مشکلات امنیتی در حال حاضر، این هشدار در مورد تماس به printf و اسکنر توابع
جایی که رشته قالب یک رشته واقعی نیست و هیچ آرگومان قالبی وجود ندارد،
همانطور که در printf(foo); بجای printf("%s", فو)؛ این ممکن است یک حفره امنیتی باشد اگر
رشته فرمت از ورودی نامعتبر آمده و حاوی '%n' است.

استحکام بخشیدن
این تنظیم (به طور پیش فرض فعال است) اضافه می کند -D_FORTIFY_SOURCE=2 به CPPFLAGS. در طول کد
نسلی که کامپایلر اطلاعات زیادی در مورد اندازه های بافر می داند (کجا
امکان پذیر است)، و تلاش می کند تا فراخوانی های تابع بافر با طول نامحدود را جایگزین کند
با موارد با طول محدود این مخصوصاً برای کدهای قدیمی و نامرتب مفید است.
علاوه بر این، رشته های قالب بندی در حافظه قابل نوشتن که حاوی '%n' هستند مسدود می شوند. اگر
یک برنامه به چنین رشته فرمتی بستگی دارد، باید در اطراف آن کار شود.

توجه داشته باشید که برای تاثیر گذاری این گزینه باید منبع را نیز کامپایل کرد
-O1 یا بالاتر اگر متغیر محیطی DEB_BUILD_OPTIONS شامل نه، و سپس
استحکام بخشیدن به دلیل هشدارهای جدیدی که توسط glibc 2.16 صادر شده است، پشتیبانی غیرفعال خواهد شد
و بعد.

محافظ پشته
این تنظیم (در صورت عدم استفاده از stackprotectorstrong به طور پیش فرض فعال می شود) اضافه می کند
محافظ چوب --param=ssp-buffer-size=4 به CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS و FCFLAGS. این بررسی های ایمنی در برابر پشته را اضافه می کند
رونویسی می کند. این امر بسیاری از حملات بالقوه تزریق کد را به سقط تبدیل می کند
موقعیت ها در بهترین حالت، این آسیب‌پذیری‌های تزریق کد را به انکار تبدیل می‌کند
خدمات یا به مشکلاتی غیر از آن (بسته به برنامه).

این ویژگی نیاز به پیوند با glibc (یا ارائه دهنده دیگری از
__stack_chk_fail، بنابراین باید هنگام ساخت با غیرفعال شود -nostdlib or
-مناسب یا مشابه.

stackprotectorstrong
این تنظیم (به طور پیش فرض فعال است) اضافه می کند -fstack-محافظ-قوی به CFLAGS,
CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS و FCFLAGS. این قوی تر است
نوع از محافظ پشته، اما بدون جریمه عملکرد قابل توجه.

غیرفعال کردن محافظ پشته همچنین این تنظیم را غیرفعال می کند.

این ویژگی همان الزامات را دارد محافظ پشته، و علاوه بر آن نیز
به gcc 4.9 و بالاتر نیاز دارد.

relro این تنظیم (به طور پیش فرض فعال است) اضافه می کند -wl ، -z ، relro به LDFLAGS. در طول برنامه
load، چندین بخش حافظه ELF باید توسط پیوند دهنده نوشته شود. این پرچم ها
لودر برای تبدیل این بخش ها فقط خواندنی قبل از تبدیل کنترل به
برنامه مهمتر از همه این از حملات بازنویسی GOT جلوگیری می کند. اگر این گزینه است
معلول، bindnow نیز معلول خواهد شد.

bindnow
این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -Wl،-z، اکنون به LDFLAGS. در حین بارگذاری برنامه،
تمام نمادهای دینامیک حل می شوند و به کل PLT اجازه می دهند که به عنوان خوانده شده علامت گذاری شوند.
فقط (به دلیل relro در بالا). این گزینه نمی تواند فعال شود اگر relro نیست
فعال شده است

پای این تنظیم (به طور پیش فرض غیرفعال است) اضافه می کند -fPIE به CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS و FCFLAGSو -fPIE - پای به LDFLAGS. موقعیت
برای استفاده از طرح‌بندی فضای آدرس، به فایل اجرایی مستقل نیاز است
تصادفی سازی، پشتیبانی شده توسط برخی از نسخه های هسته. در حالی که ASLR در حال حاضر می تواند باشد
برای مناطق داده در پشته و پشته (brk و mmap)، مناطق کد باید اعمال شوند
به عنوان مستقل از موقعیت کامپایل شود. کتابخانه های مشترک قبلاً این کار را انجام می دهند (-fPIC).
آنها به طور خودکار ASLR را دریافت می کنند، اما مناطق متنی باینری باید برای به دست آوردن PIE ساخته شوند
ASLR. وقتی این اتفاق می افتد، حملات ROP (برنامه نویسی بازگشت گرا) بسیار سخت تر می شوند
از آنجایی که هیچ مکان ثابتی برای گزاف گویی در هنگام خراب شدن حافظه وجود ندارد
حمله

این سازگار نیست -fPIC بنابراین هنگام ساخت مشترک باید دقت شود
اشیاء.

علاوه بر این، از آنجایی که PIE از طریق یک ثبات عمومی پیاده سازی می شود، برخی از معماری ها
(به ویژه i386) می تواند کاهش عملکرد تا 15٪ را در بخش متن بسیار مشاهده کند.
بارهای کاری سنگین برنامه؛ اکثر بارهای کاری کمتر از 1٪ را مشاهده می کنند. معماری با
ثبت های عمومی تر (مثلاً amd64) بدترین مجازات را بالا نمی بینند.

قابل تکرار
گزینه های زمان کامپایل که در زیر توضیح داده شده است می توانند برای کمک به بهبود تکرارپذیری ساخت استفاده شوند
یا پیام های هشدار اضافی را در حین تدوین ارائه دهید. به جز موارد ذکر شده در زیر، اینها
به طور پیش فرض برای معماری هایی که از آنها پشتیبانی می کنند فعال هستند.

بی انتها
این تنظیم (به طور پیش فرض فعال است) اضافه می کند -تاریخ-زمان به CPPFLAGS. این باعث خواهد شد
هشدارها زمانی که __زمان__, __تاریخ__ و __TIMESTAMP__ ماکرو استفاده می شود.

محیط زیست


2 مجموعه از متغیرهای محیطی وجود دارد که همان عملیات را انجام می دهند، اولین
(DEB_پرچم_op) هرگز نباید در داخل استفاده شود دبیان/قوانین. برای هر کاربری که بخواهد در نظر گرفته شده است
برای بازسازی بسته منبع با پرچم های ساخت مختلف. مجموعه دوم
(DEB_پرچم_MAINT_op) فقط باید در استفاده شود دبیان/قوانین توسط نگهبانان بسته برای تغییر
پرچم های ساخت به دست آمده

DEB_پرچم_تنظیم
DEB_پرچم_MAINT_SET
از این متغیر می توان برای وادار کردن مقدار بازگردانده شده برای مقدار داده شده استفاده کرد پرچم.

DEB_پرچم_Strip
DEB_پرچم_MAINT_STRIP
از این متغیر می توان برای ارائه لیستی از گزینه های جدا شده از فضا استفاده کرد
سلب از مجموعه ای از پرچم های بازگشت داده شده است پرچم.

DEB_پرچم_پیوست
DEB_پرچم_MAINT_APPEND
از این متغیر می توان برای افزودن گزینه های تکمیلی به مقدار بازگشتی استفاده کرد
داده شده پرچم.

DEB_پرچم_پیش بندی
DEB_پرچم_MAINT_PREPEND
از این متغیر می توان برای اضافه کردن گزینه های تکمیلی به مقدار برگشتی استفاده کرد
برای داده شده پرچم.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
این متغیرها می توانند توسط یک کاربر یا نگهدارنده برای غیرفعال کردن/فعال کردن مناطق مختلف استفاده شوند
ویژگی هایی که بر پرچم های ساخت تاثیر می گذارد. را DEB_BUILD_MAINT_OPTIONS متغیر نادیده گرفته می شود
هر تنظیمی در DEB_BUILD_OPTIONS مناطق ویژه را ببینید خصیصه مناطق بخش
برای جزئیات بیشتر.

با استفاده از خدمات onworks.net از dpkg-buildflags به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad