Tôi muốn tạo một tệp DEB bằng tay. Tôi chỉ muốn cung cấp một thư mục chứa dữ liệu để cài đặt và tập lệnh sẽ được thực thi sau khi cài đặt.
Điều này có thể không?
Tôi muốn tạo một tệp DEB bằng tay. Tôi chỉ muốn cung cấp một thư mục chứa dữ liệu để cài đặt và tập lệnh sẽ được thực thi sau khi cài đặt.
Điều này có thể không?
Câu trả lời:
Đề nghị của tôi là làm cho một gói nguồn. Cài đặt bản dựng, thiết yếu , gỡ lỗi , dh-make . Thay đổi thư mục chứa các tệp bạn muốn cài đặt (tên thư mục phải có dạng $PACKAGE-$VERSION
, ví dụ như myapp-4.2-1
lần thử đầu tiên của bạn trong việc đóng gói Myapp V4.2) và chạy dh_make --createorig
. Trả lời các câu hỏi. Debhelper sẽ tạo cơ sở hạ tầng cơ bản cần thiết để xây dựng gói bằng cách tạo các tệp trong thư mục con được gọi debian
, cả một số tệp và mẫu bắt buộc cho các tệp tùy chọn. Bạn có thể cần sửa đổi một số tệp này:
debian/rules
để xây dựng những gì cần xây dựng và cài đặt các tệp ở đúng nơi. Nếu bạn chỉ cần sao chép một số tệp và không biên dịch nội dung, chỉ cần chỉnh sửa tệp debian/install
để chỉ định tệp nào cần được cài đặt ở đâu.debian/copyright
để thêm thông tin giấy phép về gói của bạn và thông tin về nơi nhận phiên bản mới nhất (nếu có liên quan).debian/changelog
để xóa tham chiếu đến ITP (chỉ liên quan nếu bạn đang làm việc cho dự án Debian). Đổi tên debian/postinst.ex
để debian/postinst
và thêm lệnh sau khi cài đặt bạn ở đó. Nếu sau này bạn cập nhật gói của mình, hãy chạy debchange -i
để thêm mục nhập thay đổi hoặc chỉnh sửa tệp trong Emacs ( đã cài đặt dpkg-dev-el ).Chạy dpkg-buildpackage -rfakeroot -us -uc
để xây dựng .deb
gói (loại bỏ -us -uc
nếu bạn muốn ký gói bằng khóa PGP của bạn).
Nếu bạn quyết định tạo gói nhị phân trực tiếp mà không xây dựng gói từ gói nguồn, điều này không thực sự dễ dàng hơn vì không có nhiều công cụ để tạo thuận lợi cho quá trình, bạn sẽ cần một số quen thuộc cơ bản với định dạng của gói gỡ lỗi. Nó được mô tả trong Hướng dẫn chính sách Debian , đặc biệt là ch. 3 (định dạng của gói nhị phân) , ch. 5 (tập tin kiểm soát) , ch. 6 (tập lệnh cài đặt) và phụ lục B (thao tác gói nhị phân) .
Bạn đảm bảo rằng gói của bạn cài đặt các tệp dự kiến /usr/share/doc/copyright
(chứa giấy phép của nội dung gói, cũng như nơi tìm phiên bản mới nhất của gói) và /usr/share/doc/changelog.Debian.gz
(chứa thay đổi của gói gỡ lỗi). Bạn không cần những thứ này nếu bạn chỉ sử dụng gói trong nhà, nhưng tốt hơn là nên có chúng.
Nếu bạn có sẵn các công cụ Debian, hãy sử dụng dpkg-deb
để xây dựng gói. Trong thư mục chứa dữ liệu cần cài đặt, hãy thêm một thư mục được gọi DEBIAN
ở cấp cao nhất, chứa các tệp điều khiển và tập lệnh bảo trì.
$ ls mypackage-42
DEBIAN etc usr var
$ dpkg-deb -b mypackage-42
Nếu bạn không có các công cụ Debian, hãy xây dựng một kho lưu trữ các tệp bạn muốn gói data.tar.gz
, một kho lưu trữ riêng biệt của các tệp điều khiển được gọi control.tar.gz
(không có thư mục con) và tệp văn bản được gọi debian-binary
và chứa văn bản 2.0
.
cd mypackage-42
tar czf ../data.tar.gz [a-z]*
cd DEBIAN
tar czf ../../control.tar.gz *
cd ../..
echo 2.0 > debian-binary
ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz
Bạn cần ít nhất một tập tin điều khiển với các lĩnh vực Package
, Maintainer
, Priority
, Architecture
, Installed-Size
, Version
, và bất kỳ tuyên bố phụ thuộc cần thiết.
Kịch bản được thực hiện sau khi cài đặt được gọi postinst
. Hãy chắc chắn để làm cho nó thực thi. Nó đi cùng control
.
Nếu bạn đã có gói nhị phân từ một bản phân phối khác, bạn có thể sử dụng người ngoài hành tinh để chuyển đổi nó.
dch -i
.
ar
làm tar
không phải là?
dh_make --createorig
sử dụng, bạn cần phải export DEBEMAIL="me@example.com"
và export DEBFULLNAME="Firstname Lastname"
trước.
Trước hết, bạn cần tạo một thư mục xây dựng và lưu trữ các tệp của mình: tar czvf data.tar.gz files
Sau đó, trong thư mục bản dựng, bạn phải tạo một tệp điều khiển với một số thông tin mong muốn:
Package: xxxxxx
Version: 0.0.1
Section: user/hidden
Priority: optional
Architecture: armel
Installed-Size: `du -ks usr|cut -f 1`
Maintainer: Your Name <xxx@xxx.xx>
Description: This is optional, but creates warnings if left out
Sau đó, bạn có thể thêm các tập lệnh shell preinst, postint, prerm và postrm độc lập để kiểm soát cài đặt trước và sau khi đăng và loại bỏ hành vi của tệp .deb và sau đó bạn có thể tạo tệp lưu trữ điều khiển bằng tar: tar czvf control.tar.gz control preinst postinst prerm postrm
Sau đó, bạn cần một tệp nhị phân debian : echo 2.0 > debian-binary
. Trong thư mục bản dựng của bạn, bạn sẽ có các tệp này: debian-binary
control.tar.gz
và data.tar.gz
.
Cuối cùng, bạn cần ar
gói để tạo tệp .deb:ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
nó có thể có giá trị để nhấn mạnh thứ tự là quan trọng: kiểm soát phải đến trước dữ liệu.
Tôi làm rất nhiều gói, và để làm một gói đầy đủ không phải là chuyện nhỏ. Trên một lưu ý tích cực, các tập tin và tập lệnh là công việc ít hơn nhiều. Bạn có thể tạo một gói như vậy, rất đơn giản, với một công cụ được gọi là debreate .
Debreate là một GUI thực sự đơn giản, chỉ để tạo các gói DEB đơn giản. Bạn chỉ có thể chỉ định tệp nào, nơi chúng đi và nếu / cái gì sẽ thực thi khi đăng / cài đặt trước / gỡ cài đặt. Tôi đã từng làm tất cả các gói của mình theo cách tiêu chuẩn, nhưng sau khi tôi bắt đầu sử dụng công cụ này, tôi sẽ chỉ quay lại khi cần thiết.
Xem Wiki Wiki trên Bao bì , có thể equivs
(xem liên kết) đã đáp ứng yêu cầu của bạn.
Trang Wikipedia trên deb
định dạng tệp cũng bao gồm nhiều liên kết hữu ích.
Chạy vào đây với Zimbra 7 trên Debian bằng các gói Ubuntu của nó. .
mkdir new
for i in *.deb
do echo `date`: working on $i
ar x $i
cd control
rm * 2> /dev/null
tar -xzpvf ../control.tar.gz
tr "_" "-" < control > control2
mv -v control2 control
tar -czpvf ../control.tar.gz .
cd ..
ar r new/$i debian-binary control.tar.gz data.tar.gz
done
rm -rf debian-binary control.tar.gz data.tar.gz control
Tất cả các tệp .deb mới của bạn sẽ nằm trong new/
.
Lưu ý : đây là về vắt - dpkg trên wheezy có - lực lượng-phiên bản xấu bây giờ.
Để tạo nhanh các gói bạn có thể sử dụng chương trình cài đặt. Nó thực hiện một chương trình, xem các thay đổi - và tạo gói deb hoặc vòng / phút của chương trình.
$ apt-get install build-essential dh-make debhelper devscripts
$ wget http://nmap.org/dist/nmap-LAST.tar.bz2
$ tar xf nmap-LAST.tar.bz2
$ cd nmap-LAST
$ dh_make -s -e youremail@site.org -f ../nmap-LAST.tar.bz2
$ apt-get install libgtk2.0-dev flex bison libpcap0.8-dev \
libpcre3-dev binutils-dev python-all-dev
$ dpkg-buildpackage