Làm cách nào để tạo PPA tùy chỉnh của riêng tôi để chia sẻ với cộng đồng Ubuntu? Tôi đang cố gắng tạo bộ gói tùy chỉnh của riêng mình và tôi thực sự muốn chia sẻ nó với cộng đồng.
Làm cách nào để tạo PPA tùy chỉnh của riêng tôi để chia sẻ với cộng đồng Ubuntu? Tôi đang cố gắng tạo bộ gói tùy chỉnh của riêng mình và tôi thực sự muốn chia sẻ nó với cộng đồng.
Câu trả lời:
Sử dụng Lưu trữ gói cá nhân ( PPA ), bạn có thể phân phối phần mềm và cập nhật trực tiếp cho người dùng Ubuntu. Tạo gói nguồn của bạn, tải lên và Launchpad sẽ xây dựng các nhị phân và sau đó lưu trữ chúng trong kho apt của riêng bạn.
Dưới đây là một lời giải thích chi tiết .
Đây là một hướng dẫn về cách tạo một tệp .deb cơ bản từ một tập lệnh mẫu nhất định. Trong hướng dẫn này trước tiên, chúng tôi tạo một chương trình mẫu trong bash chỉ hiển thị 'HELLO TỪ CHƯƠNG TRÌNH'. Sau đó, chúng tôi tạo một tệp điều khiển cho chương trình để tạo một trình cài đặt debian. Cuối cùng chúng được đóng gói thành một .deb
tập tin.
tạo một chương trình mẫu trong bash
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
dán đoạn mã sau vào nó
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
Làm cho chương trình thực thi
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Tạo tập tin điều khiển cho gói debian
Tạo một tập tin có tên control
trong thư mụcDEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
và dán các chi tiết sau
Package: hellodeb
Version: 0.1
Architecture: all
Maintainer: totti
Installed-Size: 6
Depends: zenity, bash
Section: testing
Priority: optional
Homepage: http://askubuntu.com
Description: This is my first debian package.
Guided by Totti Torvalds.
In Description new line start with a space.
Bạn có thể chỉnh sửa nội dung nếu bạn thích. Đọc thêm về định dạng của tập tin này ở đây và ở đây .
Tạo postinst
tập lệnh, được thực thi ngay sau khi cài đặt gói
gedit "$HOME"/create_deb/DEBIAN/postinst
sau đó dán
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
và làm cho nó thực thi
chmod +x "$HOME/create_deb/DEBIAN/postinst"
Tạo prerm
tập lệnh, được thực thi trước khi gỡ bỏ gói
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
và làm cho nó thực thi
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Tạo cấu trúc gói và sao chép chương trình, dữ liệu, v.v.
Tạo cấu trúc của chương trình đã cài đặt và dữ liệu của nó. Trong ví dụ này, chúng tôi đặt các tập tin tại /bin
.
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
Xây dựng tệp .deb .
dpkg-deb --build "$HOME"/create_deb .
Các .
ý chí tự động đặt tên cho .deb
file với phiên bản, vòm vv Hoặc tên tùy chỉnh của bạn
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
Hoặc nếu bạn xây dựng tệp .deb với
debuild -k'your GPG key here' -S
sau đó bạn có thể tải nó lên Ubuntu Launchpad với
dput ppa:<lp-username>/<ppa-name> packet-source.changes
như được mô tả ở đây (nguồn: tạo Gói .deb từ tập lệnh hoặc tệp nhị phân )
Cài đặt .deb
gói vừa tạo . Bạn có thể mở nó bằng software-center
nhưng nó có thể không cho phép bạn cài đặt. Vì vậy, tôi khuyên bạn nên sử dụng gdebi
gói quản lý.
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Bây giờ bạn có thể cài đặt nó. Trong quá trình cài đặt, bạn sẽ thấy một cuộc đối thoại gtk
Cài đặt chương trình: zenity_hello.sh ......
Sau khi cài đặt mở một thiết bị đầu cuối và gõ zenity_hello
. Nếu chương trình được cài đặt đúng và mọi thứ đều ổn, bạn sẽ thấy đoạn hội thoại gtk
HELLO TỪ CHƯƠNG TRÌNH
Gỡ bỏ gói
sudo apt-get remove zenity_hello
Vì OP muốn một cách đơn giản để xuất bản các gói của mình, tôi cho phép hack dễ dàng.
yêu cầu: dropbox (hoặc bất kỳ dịch vụ nào khác, ví dụ như tài khoản github ) với một thư mục công cộng.
Tạo một thư mục bên trong Thư mục công cộng-Dropbox nơi bạn đặt các tệp * .deb của mình:
mkdir ~/Dropbox/Public/deb-packages
hoặc tạo thư mục đó ở bất kỳ nơi nào khác và đặt liên kết tượng trưng vào thư mục Công cộng của bạn:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Đi vào thư mục đó và tạo một tập lệnh mà khi được thực thi sẽ tạo ra Gói.gz, chứa tất cả các thông tin cần thiết về các gói gỡ lỗi của bạn. tạo nên:
gedit import.sh
đặt cái này vào trong nó:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
làm cho nó thực thi:
chmod x import.sh
Sao chép một số tệp * .deb vào Thư mục. Có thể là của riêng bạn hoặc một số không có sẵn thông qua các kho lưu trữ khác. Sau đó đi vào Thư mục và thực thi tập lệnh chúng tôi đặt ở đó:
cd ~/deb-packages/
./import.sh
Điều đó sẽ tạo ra cái gọi là Packages.gz File, mà ngoại hình apt cho biết những gói được đặt tại kho lưu trữ này.
Bây giờ, hãy đợi Dropbox đồng bộ hóa Thư mục và lấy URL công khai từPackages.gz
. Nó sẽ trông giống như thế này:
http://dl.getdropbox.../Packages.gz
Loại bỏ phần cuối của liên kết đó, đặt thêm một số từ cho liên kết đó và bây giờ bạn có thể sử dụng và điền vào dòng sau cho các nguồn.list:
deb http://dl.getdropbox.../deb-packages ./
Đó là bạn có kho lưu trữ deb của riêng bạn đang chạy. Luôn đồng bộ cục bộ, nhưng có sẵn cho bất cứ ai, bất cứ lúc nào, bất cứ nơi nào.
LƯU Ý: dpkg-scanpackages
có sẵn từ dpkg-dev
tài liệu tham khảo
releases/
xem github.com/rubo77/mouse-speed/blob/master/release/iêu
debuild -us -uc -k'your GPG key here'
sau đó bạn có thể tải nó dput ppa:<lp-username>/<ppa-name> packet-source.changes
lên Launchpad như được mô tả ở đây (nguồn: tạo Gói .deb từ tập lệnh hoặc tệp nhị phân )
debuild -k'your GPG key here' -S
vì Launchpad sẽ tạo tệp gỡ lỗi (nếu nó không bị từ chối) - những gì `-us -uc` đã được cho?