Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

dpkg-buildflags - Trực tuyến trên đám mây

Chạy dpkg-buildflags trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks qua Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh dpkg-buildflags có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


dpkg-buildflags - trả về cờ xây dựng để sử dụng trong quá trình xây dựng gói

SYNOPSIS


dpkg-buildflags [tùy chọn...] [lệnh]

MÔ TẢ


dpkg-buildflags là một công cụ để truy xuất các cờ biên dịch để sử dụng trong quá trình xây dựng Debian
các gói. Các cờ mặc định do nhà cung cấp xác định nhưng chúng có thể được mở rộng / ghi đè
theo một số cách:

1. toàn hệ thống với /etc/dpkg/buildflags.conf;

2. cho người dùng hiện tại với $ XDG_CONFIG_HOME / dpkg / buildflags.conf Ở đâu
$ XDG_CONFIG_HOME mặc định là $ HOME / .config;

3. tạm thời bởi người dùng với các biến môi trường (xem phần MÔI TRƯỜNG);

4. động bởi người bảo trì gói với các biến môi trường được thiết lập thông qua
debian / quy tắc (xem phần MÔI TRƯỜNG).

Các tệp cấu hình có thể chứa hai loại lệnh:

SET cờ giá trị
Ghi đè cờ có tên cờ có giá trị giá trị.

CƯỚP cờ giá trị
Tước khỏi lá cờ có tên cờ tất cả các cờ xây dựng được liệt kê trong giá trị.

PHỤ LỤC cờ giá trị
Kéo dài cờ có tên cờ bằng cách thêm các tùy chọn được đưa ra trong giá trị. Một không gian là
thêm vào trước giá trị được nối thêm nếu giá trị hiện tại của cờ không trống.

TRƯỚC cờ giá trị
Kéo dài cờ có tên cờ bằng cách thêm trước các tùy chọn được đưa ra trong giá trị. Một không gian là
được thêm vào giá trị được thêm vào trước nếu giá trị hiện tại của cờ không trống.

Các tệp cấu hình có thể chứa các chú thích trên các dòng bắt đầu bằng dấu thăng (#). Trống
dòng cũng bị bỏ qua.

HÀNG


--bãi rác In ra đầu ra tiêu chuẩn tất cả các cờ biên dịch và giá trị của chúng. Nó in một lá cờ
mỗi dòng được phân tách khỏi giá trị của nó bằng một dấu bằng (“cờ=giá trị”). Đây là
Hành động mặc định.

--danh sách In danh sách các cờ được nhà cung cấp hiện tại hỗ trợ (một cờ trên mỗi dòng). Xem
HPORT TRỢ CỜ để biết thêm thông tin về chúng.

--trạng thái
Hiển thị bất kỳ thông tin nào có thể hữu ích để giải thích hành vi của
dpkg-buildflags (kể từ dpkg 1.16.5): các biến môi trường liên quan, hiện tại
nhà cung cấp, trạng thái của tất cả các cờ tính năng. Đồng thời in các cờ trình biên dịch kết quả với
nguồn gốc của chúng.

Điều này dự định sẽ được chạy từ debian / quy tắc, để nhật ký xây dựng luôn rõ ràng
dấu vết của các cờ xây dựng được sử dụng. Điều này có thể hữu ích để chẩn đoán các vấn đề liên quan đến
Chúng.

--export =định dạng
In ra các lệnh đầu ra tiêu chuẩn có thể được sử dụng để xuất tất cả các biên dịch
cờ cho một số công cụ cụ thể. Nếu định dạng giá trị không được đưa ra, sh được giả định.
Chỉ các cờ biên dịch bắt đầu bằng ký tự viết hoa mới được bao gồm, các cờ khác
được cho là không phù hợp với môi trường. Các định dạng được hỗ trợ:

sh Các lệnh Shell để đặt và xuất tất cả các cờ biên dịch trong
môi trường. Các giá trị cờ được trích dẫn để đầu ra sẵn sàng cho
đánh giá bằng trình bao.

dòng lệnh
Các đối số để chuyển đến dòng lệnh của chương trình xây dựng để sử dụng tất cả
cờ biên dịch (kể từ dpkg 1.17.0). Các giá trị cờ được trích dẫn trong shell
cú pháp.

cấu hình
Đây là một bí danh kế thừa cho dòng lệnh.

làm cho Thực hiện các lệnh để đặt và xuất tất cả các cờ biên dịch trong
môi trường. Đầu ra có thể được ghi vào một đoạn makefile và được đánh giá
sử dụng một bao gồm Chỉ thị.

--được cờ
In giá trị của cờ trên đầu ra tiêu chuẩn. Thoát bằng 0 nếu cờ được biết
nếu không sẽ thoát bằng 1.

--gốc cờ
In nguồn gốc của giá trị được trả về bởi --được. Thoát bằng 0 nếu cờ
được biết nếu không sẽ thoát với 1. Gốc có thể là một trong các giá trị sau:

nhà cung cấp cờ ban đầu do nhà cung cấp đặt được trả lại;

hệ thống cờ được đặt / sửa đổi bởi cấu hình toàn hệ thống;

người sử dụng cờ được đặt / sửa đổi bởi cấu hình dành riêng cho người dùng;

env cờ được đặt / sửa đổi bởi cấu hình môi trường cụ thể.

--tính năng truy vấn khu vực
In các tính năng được bật cho một khu vực nhất định (kể từ dpkg 1.16.2). Duy nhất
các khu vực hiện được công nhận trên Debian và các dẫn xuất là qa, tái sản xuất, vệ sinh
cứng, xem FEATURE KHU VỰC để biết thêm chi tiết. Thoát bằng 0 nếu
khu vực được biết cách khác là các lối thoát bằng 1.

Đầu ra ở định dạng RFC822, với một phần cho mỗi tính năng. Ví dụ:

Tính năng: bánh
Đã bật: không

Tính năng: stackprotector
Đã bật: có

--Cứu giúp Hiển thị thông báo sử dụng và thoát.

--phiên bản
Hiển thị phiên bản và thoát.

HPORT TRỢ CỜ


CỜ Các tùy chọn cho trình biên dịch C. Giá trị mặc định do nhà cung cấp đặt bao gồm -g
mức tối ưu hóa mặc định (-O2 thường, hoặc -O0 nếu DEB_BUILD_OPTIONS
biến môi trường xác định noopt).

CPPFLAGS
Các tùy chọn cho bộ tiền xử lý C. Giá trị mặc định: trống.

CXXFLAG
Các tùy chọn cho trình biên dịch C ++. Giống như CỜ.

CỜ ĐỐI TƯỢNG
Các tùy chọn cho trình biên dịch Objective C. Giống như CỜ.

OBJCXXCỜ
Các tùy chọn cho trình biên dịch Objective C ++. Giống như CXXFLAG.

GCJFLAG
Các tùy chọn cho trình biên dịch Java GNU (gcj). Một tập hợp con của CỜ.

CỜ Các tùy chọn cho trình biên dịch Fortran 77. Một tập hợp con của CỜ.

CỜ CỜ
Các tùy chọn cho trình biên dịch Fortran 9x. Giống như CỜ.

LDFLAGS
Các tùy chọn được chuyển đến trình biên dịch khi liên kết các tệp thi hành hoặc các đối tượng được chia sẻ (nếu
trình liên kết được gọi trực tiếp, sau đó -L, phải bị loại bỏ khỏi các tùy chọn này).
Giá trị mặc định: trống.

Các cờ mới có thể được thêm vào trong tương lai nếu nhu cầu phát sinh (ví dụ: để hỗ trợ
ngôn ngữ).

FEATURE KHU VỰC


Mỗi tính năng khu vực có thể được bật và tắt trong DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS giá trị khu vực của biến môi trường với '+'Và'-' bổ nghĩa.
Ví dụ, để kích hoạt cứng Tính năng "pie" và tắt tính năng "củng cố" bạn
có thể làm điều này trong debian / quy tắc:

xuất DEB_BUILD_MAINT_OPTIONS = hardning = + pie, -fortify

Các tính năng đặc biệt tất cả các (có hiệu lực ở bất kỳ khu vực nào) có thể được sử dụng để bật hoặc tắt tất cả khu vực
cùng một lúc. Do đó, vô hiệu hóa mọi thứ trong cứng khu vực và kích hoạt
chỉ có thể đạt được "định dạng" và "củng cố" với:

xuất DEB_BUILD_MAINT_OPTIONS = hardning = -all, + format, + fortify

qa
Một số tùy chọn thời gian biên dịch (chi tiết bên dưới) có thể được sử dụng để giúp phát hiện các vấn đề trong
mã nguồn hoặc xây dựng hệ thống.

lỗi Cài đặt này (bị tắt theo mặc định) thêm bất kỳ tùy chọn cảnh báo nào có thể phát hiện một cách đáng tin cậy
mã nguồn có vấn đề. Các cảnh báo là chết người.

hoàng yến Cài đặt này (bị tắt theo mặc định) thêm các tùy chọn chim hoàng yến giả vào cờ xây dựng, vì vậy
rằng các bản ghi bản dựng có thể được kiểm tra xem các cờ bản dựng truyền bá như thế nào và cho phép
tìm thấy bất kỳ thiếu sót nào trong cài đặt cờ xây dựng thông thường. Hiện tại duy nhất được hỗ trợ
cờ là CPPFLAGS, CỜ, CỜ ĐỐI TƯỢNG, CXXFLAGOBJCXXCỜ với các cờ được đặt thành
-D__DEB_CANARY_cờ_id ngẫu nhiên__LDFLAGS đặt thành -Wl, -z, deb-canary-id ngẫu nhiên.

vệ sinh
Một số tùy chọn thời gian biên dịch (chi tiết bên dưới) có thể được sử dụng để giúp làm sạch kết quả
nhị phân chống lại lỗi bộ nhớ, rò rỉ bộ nhớ, sử dụng sau khi miễn phí, phân luồng dữ liệu và
lỗi hành vi không xác định.

địa chỉ
Cài đặt này (bị tắt theo mặc định) thêm -fsanifying = địa chỉ đến LDFLAGS
-fsanifying = địa chỉ -fno-bỏ qua-khung-con trỏ đến CỜCXXFLAG.

Chủ đề Cài đặt này (bị tắt theo mặc định) thêm -fsanized = chủ đề đến CỜ, CXXFLAG
LDFLAGS.

bị rò rỉ Cài đặt này (bị tắt theo mặc định) thêm -fsanized = rò rỉ đến LDFLAGS. Nó được
tự động bị vô hiệu hóa nếu một trong hai địa chỉ hoặc là Chủ đề các tính năng được kích hoạt, như
họ ngụ ý nó.

không xác định
Cài đặt này (bị tắt theo mặc định) thêm -fsanifying = undefined đến CỜ, CXXFLAG
LDFLAGS.

cứng
Một số tùy chọn thời gian biên dịch (chi tiết bên dưới) có thể được sử dụng để giúp làm cứng kết quả
nhị phân chống lại các cuộc tấn công làm hỏng bộ nhớ hoặc cung cấp các thông báo cảnh báo bổ sung trong
biên dịch. Ngoại trừ như được lưu ý bên dưới, chúng được bật theo mặc định cho các kiến ​​trúc
hỗ trợ họ.

định dạng Cài đặt này (được bật theo mặc định) thêm - Định dạng -Werror = format-security đến CỜ,
CXXFLAG, CỜ ĐỐI TƯỢNGOBJCXXCỜ. Điều này sẽ cảnh báo về chuỗi định dạng không phù hợp
sử dụng và sẽ không thành công khi các hàm định dạng được sử dụng theo cách thể hiện
vấn đề bảo mật. Hiện tại, điều này cảnh báo về các cuộc gọi đến printfquét chức năng
trong đó chuỗi định dạng không phải là một chuỗi ký tự và không có đối số định dạng,
như trong printf (foo); thay vì printf ("% s", foo); Đây có thể là một lỗ hổng bảo mật nếu
chuỗi định dạng đến từ đầu vào không đáng tin cậy và chứa '% n'.

củng cố
Cài đặt này (được bật theo mặc định) thêm -D_FORTIFY_SOURCE = 2 đến CPPFLAGS. Trong khi viết mã
tạo trình biên dịch biết rất nhiều thông tin về kích thước bộ đệm (nơi
có thể), và cố gắng thay thế các lệnh gọi hàm đệm có độ dài không giới hạn không an toàn
với những cái giới hạn độ dài. Điều này đặc biệt hữu ích cho mã cũ, thô.
Ngoài ra, các chuỗi định dạng trong bộ nhớ có thể ghi có chứa '% n' bị chặn. Nếu như
một ứng dụng phụ thuộc vào một chuỗi định dạng như vậy, nó sẽ cần được làm việc xung quanh.

Lưu ý rằng để tùy chọn này có bất kỳ tác dụng nào, nguồn cũng phải được biên dịch với
-O1 hoặc cao hơn. Nếu biến môi trường DEB_BUILD_OPTIONS chứa nooptthì
củng cố hỗ trợ sẽ bị vô hiệu hóa do các cảnh báo mới được đưa ra bởi glibc 2.16
và sau đó.

bộ bảo vệ ngăn xếp
Cài đặt này (được bật theo mặc định nếu stackprotectorstrong không được sử dụng) cho biết thêm
-fstack-protectionor --param = ssp-buffer-size = 4 đến CỜ, CXXFLAG, CỜ ĐỐI TƯỢNG,
OBJCXXCỜ, GCJFLAG, CỜCỜ CỜ. Điều này bổ sung các kiểm tra an toàn chống lại ngăn xếp
ghi đè. Điều này làm cho nhiều cuộc tấn công chèn mã tiềm ẩn bị hủy bỏ
các tình huống. Trong trường hợp tốt nhất, điều này biến các lỗ hổng chèn mã thành từ chối
của dịch vụ hoặc không thành vấn đề (tùy thuộc vào ứng dụng).

Tính năng này yêu cầu liên kết với glibc (hoặc một nhà cung cấp khác của
__stack_chk_fail), vì vậy cần phải tắt khi xây dựng với -nostdlib or
-chỉ cần hoặc tương tự.

ngăn xếp mạnh mẽ
Cài đặt này (được bật theo mặc định) thêm -fstack-bảo vệ-mạnh mẽ đến CỜ,
CXXFLAG, CỜ ĐỐI TƯỢNG, OBJCXXCỜ, GCJFLAG, CỜCỜ CỜ. Đây là một mạnh mẽ hơn
Biến thể của bộ bảo vệ ngăn xếp, nhưng không có hình phạt hiệu suất đáng kể.

Vô hiệu hóa bộ bảo vệ ngăn xếp cũng sẽ tắt cài đặt này.

Tính năng này có các yêu cầu tương tự như bộ bảo vệ ngăn xếp, và ngoài ra còn có
yêu cầu gcc 4.9 trở lên.

chuyển tiếp Cài đặt này (được bật theo mặc định) thêm -Wl, -z, Relro đến LDFLAGS. Trong chương trình
tải, một số phần bộ nhớ ELF cần được trình liên kết ghi vào. Cờ này
trình tải để chuyển các phần này thành chỉ đọc trước khi chuyển quyền điều khiển sang
chương trình. Đáng chú ý nhất là điều này ngăn chặn các cuộc tấn công ghi đè GOT. Nếu tùy chọn này là
tàn tật, ràng buộc cũng sẽ bị vô hiệu hóa.

ràng buộc
Cài đặt này (bị tắt theo mặc định) thêm -Wl, -z, bây giờ đến LDFLAGS. Trong quá trình tải chương trình,
tất cả các ký hiệu động đều được giải quyết, cho phép toàn bộ PLT được đánh dấu là đã đọc-
chỉ (do chuyển tiếp bên trên). Tùy chọn này không thể được kích hoạt nếu chuyển tiếp không phải là
kích hoạt.

bánh Cài đặt này (bị tắt theo mặc định) thêm -fPIE đến CỜ, CXXFLAG, CỜ ĐỐI TƯỢNG,
OBJCXXCỜ, GCJFLAG, CỜCỜ CỜ-fPIE -Bàn Chân đến LDFLAGS. Chức vụ
Cần có thể thực thi độc lập để tận dụng Bố cục không gian địa chỉ
Ngẫu nhiên hóa, được hỗ trợ bởi một số phiên bản hạt nhân. Trong khi ASLR đã có thể
được thực thi cho các vùng dữ liệu trong ngăn xếp và heap (brk và mmap), các vùng mã phải
được biên dịch dưới dạng không phụ thuộc vào vị trí. Thư viện được chia sẻ đã làm điều này (-fPIC), vì vậy
chúng tự động đạt được ASLR, nhưng các vùng .text nhị phân cần được xây dựng PIE để đạt được
ASLR. Khi điều này xảy ra, các cuộc tấn công ROP (Lập trình hướng trở lại) khó hơn nhiều
vì không có vị trí tĩnh nào để thoát ra trong khi bộ nhớ bị hỏng
tấn công.

Điều này không tương thích với -fPIC vì vậy cần phải cẩn thận khi xây dựng chung
các đối tượng.

Ngoài ra, vì PIE được thực hiện thông qua một sổ đăng ký chung, một số kiến ​​trúc
(đáng chú ý nhất là i386) có thể thấy mất hiệu suất lên đến 15% trong phân đoạn văn bản rất-
khối lượng công việc ứng dụng nặng; hầu hết khối lượng công việc chỉ thấy dưới 1%. Kiến trúc với
nhiều đăng ký chung hơn (ví dụ: amd64) không bị coi là hình phạt trong trường hợp xấu nhất.

tái sản xuất
Các tùy chọn thời gian biên dịch chi tiết bên dưới có thể được sử dụng để giúp cải thiện khả năng tái tạo bản dựng
hoặc cung cấp các thông báo cảnh báo bổ sung trong quá trình biên dịch. Ngoại trừ như được lưu ý bên dưới, những
được bật theo mặc định cho các kiến ​​trúc hỗ trợ chúng.

vượt thời gian
Cài đặt này (được bật theo mặc định) thêm -Ngày giờ đến CPPFLAGS. Điều này sẽ gây ra
cảnh báo khi __THỜI GIAN__, __NGÀY____DẤU THỜI GIAN__ macro được sử dụng.

MÔI TRƯỜNG


Có 2 tập hợp các biến môi trường thực hiện các hoạt động giống nhau, tập hợp đầu tiên
(GỬI_cờ_op) không bao giờ được sử dụng trong debian / quy tắc. Nó dành cho bất kỳ người dùng nào muốn
để xây dựng lại gói nguồn với các cờ xây dựng khác nhau. Bộ thứ hai
(GỬI_cờ_CHÍNH_op) chỉ nên được sử dụng trong debian / quy tắc bởi những người bảo trì gói để thay đổi
các cờ xây dựng kết quả.

GỬI_cờ_BỘ
GỬI_cờ_MAINT_SET
Biến này có thể được sử dụng để buộc giá trị được trả về cho cờ.

GỬI_cờ_DÂY
GỬI_cờ_MAINT_STRIP
Biến này có thể được sử dụng để cung cấp danh sách các tùy chọn được phân tách bằng dấu cách sẽ
tước khỏi tập hợp các cờ được trả lại cho cờ.

GỬI_cờ_PHẦN
GỬI_cờ_MAINT_APPEND
Biến này có thể được sử dụng để nối các tùy chọn bổ sung vào giá trị được trả về cho
sự trao cờ.

GỬI_cờ_CHUẨN BỊ
GỬI_cờ_MAINT_PREPEND
Biến này có thể được sử dụng để thêm các tùy chọn bổ sung vào giá trị được trả về
cho những gì đã cho cờ.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Các biến này có thể được người dùng hoặc người bảo trì sử dụng để tắt / bật các khu vực khác nhau
các tính năng ảnh hưởng đến cờ xây dựng. Các DEB_BUILD_MAINT_OPTIONS ghi đè biến
bất kỳ cài đặt nào trong DEB_BUILD_OPTIONS các khu vực đặc trưng. Xem FEATURE KHU VỰC phần
để biết thêm chi tiết.

Sử dụng dpkg-buildflags trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad