 
Đây là công cụ gỡ lỗi lệnh 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, chẳng hạn 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
debuild - xây dựng một gói Debian
SYNOPSIS
gỡ rối [gỡ rối lựa chọn] [dpkg-buildpackage lựa chọn] [--lintian-opt lintian lựa chọn]
gỡ rối [gỡ rối lựa chọn] nhị phân|nhị phân|nhị phân độc lập|giống cá lăng ...
MÔ TẢ
gỡ rối tạo tất cả các tệp cần thiết để tải lên gói Debian. Nó chạy lần đầu tiên
dpkg-buildpackage, sau đó chạy lintian trên .thay đổi tệp được tạo (giả sử rằng lintian
được cài đặt), và cuối cùng ký tên vào .thay đổi và / hoặc .dsc các tệp thích hợp (sử dụng
thiết kế(1) để làm điều này thay vì dpkg-buildpackage(1) chính nó; tất cả ký khóa có liên quan
các tùy chọn được chuyển sang). Các tham số có thể được chuyển tới dpkg-buildpackage và lintian, Nơi
các tham số cho cái sau được biểu thị bằng --lintian-opt Lựa chọn. Cho phép
các tùy chọn trong trường hợp này là --lintian và --không-lintian buộc hoặc bỏ qua lintian bươc,
tương ứng. Mặc định là chạy lintian. Ngoài ra còn có các tùy chọn khác nhau có sẵn cho
thiết lập và duy trì các biến môi trường, như được mô tả bên dưới trong Môi trường
Phần biến. Trong phương pháp chạy này gỡ rối, chúng tôi cũng lưu nhật ký xây dựng vào
hồ sơ ../ _ _ .xây dựng.
Một cách sử dụng thay thế gỡ rối là sử dụng một hoặc nhiều tham số nhị phân,
nhị phân, nhị phân độc lập và giống cá lăng, trong trường hợp gỡ rối sẽ cố gắng giành được quyền root
đặc quyền và sau đó chạy debian / quy tắc với các tham số đã cho. MỘT --rootcmd =đạt được-root-
lệnh or -rđạt được-root-lệnh tùy chọn có thể được sử dụng để chỉ định một phương pháp lấy gốc
đặc quyền. Các đạt được-root-lệnh có khả năng là một trong số người giả mạo, sudo or siêu. Thấy
dưới đây để thảo luận thêm về điểm này. Một lần nữa, các tùy chọn bảo tồn môi trường
có thể được sử dụng. Trong trường hợp này, gỡ rối cũng sẽ cố gắng chạy dpkg-checkbuilddeps đầu tiên;
điều này có thể được yêu cầu rõ ràng hoặc tắt bằng cách sử dụng các tùy chọn -D và -d tương ứng.
Cũng lưu ý rằng nếu một trong hai hoặc một -r tùy chọn được chỉ định trong tệp cấu hình
tùy chọn DEBUILD_DPKG_BUILDPACKAGE_OPTS, thì nó sẽ được công nhận ngay cả trong phương pháp này
cầu khẩn của gỡ rối.
gỡ rối cũng đọc bản mô tả các tệp cấu hình như được mô tả bên dưới. Điều này cho phép
các tùy chọn mặc định sẽ được đưa ra.
thư mục tên kiểm tra
Điểm chung với một số tập lệnh khác trong bản mô tả gói, gỡ rối sẽ leo lên
cây thư mục cho đến khi nó tìm thấy debian / changelog tập tin trước khi cố gắng xây dựng
Bưu kiện. Là một biện pháp bảo vệ chống lại các tệp lạc gây ra các vấn đề tiềm ẩn, nó sẽ kiểm tra
tên của thư mục mẹ khi nó tìm thấy debian / changelog tập tin và kiểm tra điều đó
tên thư mục tương ứng với tên gói. Chính xác thì nó hoạt động như thế nào
được kiểm soát bởi hai biến tệp cấu hình DEVSCRIPTS_CHECK_DIRNAME_LEVEL và
DEVSCRIPTS_CHECK_DIRNAME_REGEXvà các tùy chọn dòng lệnh tương ứng của chúng --đánh dấu-
cấp dirname và --check-dirname-regex.
DEVSCRIPTS_CHECK_DIRNAME_LEVEL có thể nhận các giá trị sau:
0 Không bao giờ kiểm tra tên thư mục.
1 Chỉ kiểm tra tên thư mục nếu chúng tôi đã phải thay đổi thư mục trong tìm kiếm của chúng tôi
debian / changelog. Đây là hành vi mặc định.
2 Luôn kiểm tra tên thư mục.
Tên thư mục được kiểm tra bằng cách thử xem tên thư mục hiện tại (như đã xác định
by pwd(1)) khớp với regex được cung cấp bởi tùy chọn tệp cấu hình
DEVSCRIPTS_CHECK_DIRNAME_REGEX hoặc bằng tùy chọn dòng lệnh --check-dirname-regex biểu thức chính quy.
Đây biểu thức chính quy là một regex Perl (xem xin lỗi(3perl)), sẽ được neo ở đầu
và phần cuối. Nếu như biểu thức chính quy chứa '/', thì nó phải khớp với đường dẫn đầy đủ của thư mục. Nếu như
không, sau đó nó phải khớp với tên thư mục đầy đủ. Nếu như biểu thức chính quy chứa chuỗi ´PACKAGE ',
tên này sẽ được thay thế bằng tên gói nguồn, như được xác định từ changelog. Các
giá trị mặc định cho regex là: ´PACKAGE (-. +)? ', do đó khớp với các tên thư mục chẳng hạn như
PACKAGE và PACKAGE-phiên bản.
MÔI TRƯỜNG BIẾN
Vì các biến môi trường có thể ảnh hưởng đến việc xây dựng một gói, thường không cố ý,
gỡ rối sanitises môi trường bằng cách loại bỏ tất cả các biến môi trường ngoại trừ HẠN,
TRANG CHỦ, TÊN ĐĂNG NHẬP, GNUPGHOME, PGPPATH, GPG_AGENT_INFO, DBUS_SESSION_BUS_ADDRESS, FAKEROOTKEY,
GỬI_*, NS (C, CPP, CXX, LD và F)CỜ các biến và của chúng _PHẦN đối tác và
biến ngôn ngữ NGÔN NGỮ và LC_*. HẠN được đặt thành `` câm '' nếu nó không được đặt và PATH được thiết lập để
"/ usr / sbin:/ usr / bin:/ sbin:/ thùng rác: / usr / bin / X11 ".
Nếu một biến môi trường cụ thể được yêu cầu phải được chuyển đến
quá trình xây dựng, điều này có thể được chỉ định bằng cách sử dụng --preserve-envvar envvar (mà cũng có thể
được viết là -e envvar Lựa chọn). Môi trường có thể được giữ nguyên bằng cách sử dụng
--preserve-env Lựa chọn. Tuy nhiên, ngay cả trong trường hợp này, PATH sẽ được đặt thành giá trị lành mạnh
miêu tả trên. Các có thể cách để ngăn chặn PATH từ việc được đặt lại là chỉ định một
--preserve-envvar PATH Lựa chọn. Nhưng bạn được cảnh báo rằng việc sử dụng các chương trình không chuẩn
các vị trí có thể dễ dàng dẫn đến việc gói bị hỏng, vì nó sẽ không thể
được xây dựng trên các hệ thống tiêu chuẩn.
Lưu ý rằng người ta có thể thêm các thư mục vào phần đầu của PATH, sử dụng
--prepend-path Lựa chọn. Điều này rất hữu ích khi một người muốn sử dụng các công cụ như cache or
ditcc để xây dựng.
Cũng có thể tránh phải nhập những thứ như FOO=thanh gỡ rối -e FOO by
viết gỡ rối -e FOO=thanh hoặc dạng dài gỡ rối --set-envvar FOO=thanh.
Superuser YÊU CẦU
gỡ rối cần được chạy như superuser để hoạt động bình thường. Về cơ bản có ba
những cách khác nhau để làm điều này. Phương pháp đầu tiên, và thích hợp hơn, là sử dụng một số gốc rễ
chỉ huy. Cái tốt nhất để sử dụng có lẽ là người giả mạo(1), vì nó không liên quan đến việc cấp
bất kỳ đặc quyền chính hãng. siêu(1) sudo(1) cũng là những khả năng. Nếu không -r (Hoặc
--rootcmd) tùy chọn được đưa ra (và nhớ lại rằng dpkg-buildpackage cũng chấp nhận một -r không bắt buộc)
và cả hai phương pháp sau đều không được sử dụng, thì -fakeroot sẽ âm thầm được giả định.
Phương pháp thứ hai là sử dụng một số lệnh như su(1) trở thành root, và sau đó làm
mọi thứ như gốc. Tuy nhiên, lưu ý rằng lintian sẽ hủy bỏ nếu nó được chạy dưới dạng root hoặc setuid
nguồn gốc; điều này có thể được khắc phục bằng cách sử dụng --allow-root tùy chọn lintian nếu bạn biết bạn
đang làm.
Phương pháp khả thi thứ ba là có gỡ rối được cài đặt dưới dạng setuid root. Đây không phải là
phương pháp mặc định và sẽ phải được cài đặt như vậy bởi quản trị viên hệ thống. Nó
cũng phải nhận ra rằng bất kỳ ai có thể chạy gỡ rối như root hoặc setuid root có Full
truy cập đến các toàn bộ máy. Do đó, phương pháp này không được khuyến khích, nhưng sẽ hiệu quả.
gỡ rối có thể được cài đặt với chế độ 4754, để chỉ các thành viên của nhóm sở hữu mới có thể
chạy nó. Một nhược điểm của phương pháp này là những người dùng khác sau đó sẽ không thể
sử dụng chương trình. Có nhiều biến thể khác của tùy chọn này liên quan đến nhiều bản sao
of gỡ rốihoặc sử dụng các chương trình như sudo or siêu cấp quyền root cho người dùng
một cách chọn lọc. Nếu sysadmin muốn làm điều này, cô ấy nên sử dụng dpkg-statoverride
chương trình để thay đổi quyền của / usr / bin / debuild. Điều này sẽ đảm bảo rằng những
quyền được giữ nguyên qua các lần nâng cấp.
SÁCH
gỡ rối hỗ trợ một số móc khi chạy dpkg-buildpackage. Lưu ý rằng nếu có
những cái móc từ móc sạch đến cuối cùng sạch sẽ (bao gồm) được sử dụng, gỡ rối sẽ thi đua một số
các phần của dpkg-buildpackage xử lý thay vì chạy chúng trực tiếp, như dpkg-
đóng gói không hỗ trợ móc. Các móc có sẵn như sau:
dpkg-buildpackage-hook
Chạy trước dpkg-buildpackage bắt đầu bằng cách gọi dpkg-checkbuilddeps.
móc sạch
Chạy trước dpkg-buildpackage chạy debian / quy tắc giống cá lăng để làm sạch cây nguồn.
(Chạy ngay cả khi cây không được làm sạch vì -nc Được sử dụng.)
dpkg-nguồn-hook
Chạy sau khi làm sạch cây và trước khi chạy dpkg-nguồn. (Chạy ngay cả khi dpkg-
nguồn không được gọi bởi vì -b, -B, hoặc là -A Được sử dụng.)
dpkg-build-hook
Chạy sau dpkg-nguồn và trước khi gọi debian / quy tắc xây dựng. (Chạy ngay cả khi đây là
một bản dựng chỉ nguồn, vì vậy debian / quy tắc xây dựng không được gọi.)
dpkg-nhị phân-hook
Chạy giữa debian / quy tắc xây dựng và debian / quy tắc nhị phân(-sao). Chạy có thể nếu một
gói nhị phân đang được xây dựng.
dpkg-genchanges-hook
Chạy sau khi gói nhị phân được tạo và trước khi gọi trao đổi dpkg.
móc cuối cùng sạch sẽ
Chạy sau trao đổi dpkg và trước trận chung kết debian / quy tắc giống cá lăng. (Chạy ngay cả khi chúng ta
không làm sạch cây sau khi xây dựng, đó là mặc định.)
móc lintian
Chạy (một lần) trước khi gọi lintian. (Chạy ngay cả khi chúng tôi không gọi lintian.)
móc ký tên
Chạy sau khi gọi lintian trước khi bất kỳ ký kết nào diễn ra. (Chạy ngay cả khi chúng ta không
ký bất cứ thứ gì.)
post-dpkg-buildpackage-hook
Chạy sau khi mọi thứ đã hoàn thành.
Một lệnh hook có thể được chỉ định trong tệp cấu hình, chẳng hạn như
DEBUILD_SIGNING_HOOK = 'foo' (lưu ý dấu gạch ngang chuyển thành dấu gạch dưới!) Hoặc dưới dạng lệnh
tùy chọn dòng --sign-hook-foo. Lệnh sẽ có phần trăm thay thế nhất định được thực hiện
trên đó: %% sẽ được thay thế bằng một % ký tên, %p sẽ được thay thế bằng tên gói, %v
theo số phiên bản gói, %s theo số phiên bản nguồn, %u bởi phiên bản ngược dòng
con số. Không %s cũng không %u sẽ chứa một kỷ nguyên. %a sẽ được 1 nếu ngay lập tức
hành động sau sẽ được thực hiện và 0 nếu không (ví dụ: trong dpkg-nguồn móc, %a
sẽ trở thành 1 if dpkg-nguồn là được chạy và 0 nếu không). Sau đó, nó sẽ được giao cho
shell để đối phó, vì vậy nó có thể bao gồm chuyển hướng và nội dung. Ví dụ: chỉ chạy
các dpkg-nguồn móc nếu dpkg-nguồn sẽ được chạy, hook có thể là: "if [
% a -eq 1]; sau đó ...; fi ”.
Vui lòng lấy mà với móc, vì lạm dụng chúng có thể dẫn đến các gói FTBFS (không
xây dựng từ nguồn). Chúng có thể hữu ích để chụp nhanh mọi thứ hoặc những thứ tương tự.
Cuối cùng, chỉ dpkg-buildpackage-hook và những cái móc từ móc lintian trở đi có thể được sử dụng
if dpkg-chéo được cài đặt. (Điều này là do nội bộ, gỡ rối thực hiện lại
dpkg-buildpackage, nhưng nó không cố gắng thực hiện lại dpkg-chéo thay thế
script này.)
LỰA CHỌN
Để biết chi tiết, xem ở trên.
--no-conf, --noconf
Không đọc bất kỳ tệp cấu hình nào. Điều này chỉ có thể được sử dụng làm tùy chọn đầu tiên
được đưa ra trên dòng lệnh.
--rootcmd =đạt được-root-lệnh, -rđạt được-root-lệnh
Lệnh để đạt được đặc quyền root (hoặc giả root).
--preserve-env
Không làm sạch môi trường, ngoại trừ PATH.
--preserve-envvar =là, -elà
Không làm sạch là biến từ môi trường.
If là kết thúc bằng dấu hoa thị ("*"), sau đó tất cả các biến có tên khớp với
một phần của là trước khi dấu hoa thị sẽ được giữ nguyên.
--set-envvar =là=giá trị, -elà=giá trị
Đặt biến môi trường là đến giá trị và không xóa nó khỏi
môi trường.
--prepend-path =giá trị
Sau khi PATH chuẩn hóa đã được đặt, hãy thêm vào trước giá trị với nó.
--lintian
chạy lintian sau khi dpkg-buildpackage. Đây là hành vi mặc định và nó
ghi đè bất kỳ chỉ thị tệp cấu hình nào ngược lại.
--không-lintian
Đừng chạy lintian sau khi dpkg-buildpackage.
- không-tgz-kiểm tra
Ngay cả khi chúng tôi đang chạy dpkg-buildpackage và số phiên bản có Debian
sửa đổi, không kiểm tra rằng .orig.tar.gz tập tin hoặc .orig thư mục tồn tại trước đây
bắt đầu xây dựng.
--tgz-kiểm tra
Nếu chúng tôi đang chạy dpkg-buildpackage và số phiên bản có bản sửa đổi Debian,
kiểm tra xem .orig.tar.gz tập tin hoặc .orig thư mục tồn tại trước khi bắt đầu
xây dựng. Đây là hành vi mặc định.
--tên tài khoản tên truy nhập
Khi ký, sử dụng gỡ lỗi thay vì thiết kế. tên truy nhập chỉ định thông tin xác thực
được sử dụng.
--foo-cái móc=móc
Đặt một cái móc như mô tả ở trên. Nếu như móc trống, điều này không đặt móc.
- móc khóa
Xóa tất cả các móc. Chúng có thể được khôi phục bằng các tùy chọn dòng lệnh sau này.
--check-dirname-cấp N
Xem phần trên thư mục tên kiểm tra để được giải thích về tùy chọn này.
--check-dirname-regex biểu thức chính quy
Xem phần trên thư mục tên kiểm tra để được giải thích về tùy chọn này.
-d Đừng chạy dpkg-checkbuilddeps để kiểm tra sự phụ thuộc của bản dựng.
-D chạy dpkg-checkbuilddeps để kiểm tra sự phụ thuộc của bản dựng.
CẤU HÌNH BIẾN
Hai tệp cấu hình /etc/devscripts.conf và ~ / .devscripts có nguồn gốc từ một cái vỏ
để thiết lập các biến cấu hình. Các tùy chọn dòng lệnh có thể được sử dụng để
ghi đè một số cài đặt tệp cấu hình này, nếu không --no-conf tùy chọn có thể được
được sử dụng để ngăn việc đọc các tệp này. Cài đặt biến môi trường bị bỏ qua khi
các tệp cấu hình được đọc. Các biến hiện được công nhận là:
DEBUILD_PRESERVE_ENV
Nếu điều này được đặt thành Vâng, sau đó nó giống như --preserve-env dòng lệnh
tham số đang được sử dụng.
DEBUILD_PRESERVE_ENVVARS
Những biến môi trường nào để bảo toàn. Đây phải là danh sách được phân tách bằng dấu phẩy về
biến. Điều này tương ứng với việc sử dụng có thể nhiều --preserve-envvar or -e
tùy chọn.
DEBUILD_SET_ENVVAR_là=giá trị
Điều này tương ứng với --set-envvar =là=giá trị.
DEBUILD_PREPEND_PATH
Điều này tương ứng với --prepend-path.
DEBUILD_ROOTCMD
Đặt biến này thành ăn xin tương đương với -răn xin.
DEBUILD_TGZ_CHECK
Đặt biến này thành Không giống như - không-tgz-kiểm tra tùy chọn dòng lệnh.
DEBUILD_SIGNING_USERNAME
Đặt biến này giống như sử dụng --tên tài khoản tùy chọn dòng lệnh.
DEBUILD_DPKG_BUILDPACKAGE_OPTS
Đây là các tùy chọn sẽ được chuyển cho lời kêu gọi của dpkg-buildpackage.
Chúng được đưa ra trước bất kỳ tùy chọn dòng lệnh nào. Do các vấn đề về báo giá shell, nếu
một từ chứa khoảng trắng là bắt buộc như một tùy chọn duy nhất, các dấu ngoặc kép sẽ là
yêu cầu. Ví dụ: để đảm bảo rằng khóa GPG của riêng bạn luôn được sử dụng, ngay cả đối với
tải lên được tài trợ, tệp cấu hình có thể chứa dòng:
DEBUILD_DPKG_BUILDPACKAGE_OPTS = "- k'Julian Gilbey[email được bảo vệ]> '-sa "
cung cấp chính xác hai tùy chọn. Nếu không có thêm dấu ngoặc kép, dpkg-
đóng gói hợp lý sẽ phàn nàn rằng Gilbey là một tùy chọn không được công nhận (nó
không bắt đầu bằng - ký tên).
Ngoài ra, nếu tùy chọn này chứa bất kỳ -r, -d or -D các tùy chọn này sẽ luôn được thực hiện
tài khoản của gỡ rối. Lưu ý rằng một -r tùy chọn trong biến này sẽ ghi đè
thiết lập trong DEBUILD_ROOTCMD.
GỠ XÂY DỰNG_FOO_CÁI MÓC
Biến hook cho foo cái móc. Xem phần về móc ở trên để biết thêm
thông tin chi tiết. Theo mặc định, cái này trống.
DEBUILD_LINTIAN
Chúng ta có nên chạy không lintian? Nếu điều này được đặt thành Khôngthì lintian sẽ không được chạy.
DEBUILD_LINTIAN_OPTS
Đây là các tùy chọn sẽ được chuyển cho lời kêu gọi của lintian. Họ là
được đưa ra trước bất kỳ tùy chọn dòng lệnh nào và việc sử dụng biến này như
được mô tả cho DEBUILD_DPKG_BUILDPACKAGE_OPTS biến.
DEVSCRIPTS_CHECK_DIRNAME_LEVEL, DEVSCRIPTS_CHECK_DIRNAME_REGEX
Xem phần trên thư mục tên kiểm tra để được giải thích về những điều này
biến. Lưu ý rằng đây là các biến cấu hình toàn gói và sẽ
do đó ảnh hưởng đến tất cả bản mô tả các tập lệnh kiểm tra giá trị của chúng, như được mô tả trong
các trang tương ứng của họ và trong devscripts.conf(5).
VÍ DỤ
Để xây dựng gói của riêng bạn, chỉ cần chạy gỡ rối từ bên trong cây nguồn. dpkg-
đóng gói(1) các tùy chọn có thể được đưa ra trên dòng lệnh.
Các tùy chọn dòng lệnh điển hình để chỉ tạo (các) gói nhị phân mà không cần ký vào
Tệp .changes (hoặc tệp .dsc không tồn tại):
gỡ rối -i -us -uc -b
Thay đổi -b đến -S để chỉ xây dựng một gói nguồn.
Một ví dụ sử dụng lintian để kiểm tra các gói kết quả và chuyển các tùy chọn cho nó:
gỡ lỗi --lintian-opts -i
Lưu ý thứ tự của các tùy chọn ở đây: gỡ rối tùy chọn đến trước, sau đó dpkg-buildpackage
những cái, sau đó cuối cùng là các tùy chọn kiểm tra. (Và lintian được gọi theo mặc định.) Nếu bạn tìm thấy
bản thân bạn cũng sử dụng như vậy dpkg-buildpackage các tùy chọn lặp đi lặp lại, hãy cân nhắc sử dụng
DEBUILD_DPKG_BUILDPACKAGE_OPTS tùy chọn tệp cấu hình như được mô tả ở trên.
Để xây dựng một gói cho tải lên được tài trợ, foobar_1.0-1.dsc và tương ứng
tệp nguồn, chạy một cái gì đó giống như các lệnh sau:
nguồn dpkg -x foobar_1.0-1.dsc
cd foobar-1.0
giải mã -k0x12345678
trong đó 0x12345678 được thay thế bằng ID khóa GPG của bạn hoặc mã nhận dạng khóa khác, chẳng hạn như email của bạn
Địa chỉ. Một lần nữa, bạn cũng có thể sử dụng DEBUILD_DPKG_BUILDPACKAGE_OPTS tập tin cấu hình
như được mô tả ở trên để tránh phải nhập -k tùy chọn mỗi khi bạn làm một
tải lên được tài trợ.
Sử dụng gỡ lỗi trực tuyến bằng các dịch vụ onworks.net
 














