Một trong những điều tôi thích nhất về Arch Linux và các dẫn xuất của nó là cực kỳ dễ dàng để tạo các gói để sau này được cài đặt trên hệ thống, không giống như những gói đã biết . Deb của Debian / Ubuntu / Linux Mint / etc đó là một sự hỗn loạn (và nếu chúng là thư viện thì tôi không cho bạn biết).
Một mẫu cơ sở sẽ là:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Bây giờ tôi sẽ giải thích từng tham số:
- # Người bảo trì: Trong đó tên của người bảo trì gói được đặt
- tên pkg: Tên của gói. Nó chỉ có thể chứa các chữ cái, số, -, _ và +
- máy chủ: phiên bản gói. pe 1.0.0
- gói: đánh giá về chương trình hoặc gói. pe 1
- pkgdesc: mô tả gói.
- vòm: kiến trúc của chương trình: nó có thể là bất kỳ (cho mọi người), i686 và x86_64, là bất kỳ cho các gói không yêu cầu biên dịch, chẳng hạn như các chương trình bash hoặc python. Nếu đó là một chương trình cần nó (ví dụ: các chương trình bằng C hoặc C ++), bạn phải chỉ ra i686 nếu nó là 32 bit hoặc x86_64 cho 64 bit. Nói chung, nếu nó tương thích với cả hai, nó được đặt (i686, x86_64)
- url: url đến trang chính thức của chương trình. Đó là khuyến khích để đặt nó.
- Giấy phép: giấy phép chương trình. ví dụ: GPL3
- các nhóm: các nhóm mà gói đó thuộc về. nhóm = ('hệ thống')
- phụ thuộc: trong đó chúng tôi chỉ ra các gói cần thiết cho việc thực thi chương trình. pependens = ('python2' 'pygtk')
- phụ thuộc: các phụ thuộc chỉ được yêu cầu để biên dịch gói. Nếu mã sẽ được tải xuống từ trình quản lý phiên bản, bạn nên đặt nó. pe: makedepends = ('git')
- nguồn: trong đó, chúng tôi chỉ ra các tệp cần thiết để tạo gói. Theo quy tắc chung, đó là url của gói chứa mã, bản vá, tệp .desktopt, biểu tượng, v.v. pe: source = (pacsyu.desktop)
- md5sum: đây là tổng md5 của các tệp được chỉ ra trong nguồn. Để biết những cái nào chúng tôi chạy từ một thiết bị đầu cuối trong thư mục có PKGBUILD (đã ghi đường dẫn tệp trong nguồn) trang điểm -g và tổng sẽ xuất hiện trên màn hình.
Cũng có thể sử dụng các tổng khác như sh1. - xây dựng: trong chức năng này, chúng tôi sẽ đặt các lệnh cần thiết để tiến hành biên dịch phần mềm. Nếu không cần thiết phải biên dịch thì chỉ cần hàm sau)
- gói: trong chức năng khác này, các lệnh cài đặt chương trình sẽ đi. Ví dụ: nếu chúng ta đang biên dịch mã C ở đây, việc thực hiện cài đặt sẽ diễn ra.
Và để kết thúc chúng ta chỉ cần thực hiện trang điểm để xác minh rằng gói được tạo.
Như bạn thấy, đó là khó khăn cho chúng tôi. Sau đó, tôi để lại cho bạn một số thông số bổ sung của trang điểm:
- -Tôi: Hướng dẫn makepkg cài đặt gói sau khi nó được tạo.
- -S: Cài đặt các gói phụ thuộc nếu chúng nằm trong kho.
- -F: Nếu đã có một gói có tên, phiên bản và bản sửa đổi đó với tham số này, chúng tôi sẽ yêu cầu bạn ghi đè gói đó.
- -C: Làm sạch các thư mục đang làm việc (pkg và mã nguồn) sau khi hoàn tất.
- -NS: Đóng gói lại gói mà không cần phải biên dịch lại.
Tôi khuyên bạn nên xem thêm tệp PKGBUILD để xem thêm các ví dụ, thực hiện lệnh trang điểm -h để xem phần còn lại của các tham số chương trình, ngoài việc xem tài liệu chính thức của makepkg trên Arch Linux Wiki bạn có thể tìm thấy gì đây
Rất tốt …
Bạn có thể tạo một gói .exe quản lý (biên dịch) thành một gói Arch không?
Ví dụ như trình quản lý tải xuống nổi tiếng mypony ??
Theo như tôi biết thì bạn không thể, hãy nhớ rằng .exe là tệp nhị phân và không phải mã nguồn. Nhưng có JDownloader.
Như bạn nói, bạn không thể biên dịch lại một exe vì nó là mã nhị phân.
Một gói có thể được tạo để cài đặt và thực thi nó với Wine, cũng như gói trong AUR của chương trình P2P nổi tiếng Ares.
ai đó sử dụng linux và bỏ lỡ Myponi… jijijijiji
jDownloader có trong java và ai cũng biết rằng java gây ung thư phổi ...
thú vị, chúng tôi sẽ phải thử nghiệm các gói Tôi nghĩ tôi sẽ có xu hướng làm một gói từ qbittorrent hahaha nó đã tồn tại trong yaourt nhưng có phiên bản của riêng bạn sẽ không tồi để thử nghiệm, cảm ơn vì thông tin, lời chào.
Đầu vào tốt, +1
Tôi muốn nói thêm rằng chúng cũng dễ tạo và bảo trì hơn các bản dựng Gentoo!
Về Debian, tôi nghĩ rằng bản phân phối này sẽ nâng cao khuyết tật của nó rất nhiều chỉ bằng cách hiện đại hóa hoặc chuyển sang một gói và hệ thống quản lý gói hiện đại hơn, tôi không biết khi nào bản cập nhật cuối cùng của bộ dpkg / apt sẽ có nhưng khái niệm này hẳn đã dễ dàng. 15 năm và sự thật là ngày nay đã trở thành lạc hậu.
Cảm ơn bạn rất nhiều, tôi đã tìm kiếm nó trên wiki một chút và tôi chưa hiểu cấu trúc (tôi muốn cập nhật PlayonLinux một) nhưng tôi vẫn bỏ cuộc ... có những thứ mà tôi muốn có một trợ lý hoặc những thứ tương tự (đừng bắn tôi) nhưng vẫn ... trong trường hợp không có công cụ theo thời gian, tôi sẽ xem liệu tôi có tạo bất kỳ
Nhờ sự hướng dẫn của bạn, tôi đã bắt đầu tạo PKGBUILD của Zeya (http://web.psung.name/zeya/), ngay sau khi tôi hoàn thành nó, tôi tải nó lên AUR 🙂
Hoàn toàn đồng ý, một thời gian trước tôi đã cố gắng tạo một gói cho Ubuntu và tôi không thể tìm thấy thông tin dễ hiểu về cách tạo một gói, cuối cùng tôi đã bỏ cuộc và cài đặt chương trình một cách đại khái.
Chương trình tương tự cho Arch khiến tôi mất chưa đầy 5 phút để ghép các gói lại với nhau.
Và tôi không chắc lắm nhưng tôi nghĩ RPM dễ làm hơn DEB một chút, nhưng khó hơn Arch.
Rất tốt và dễ dàng, và đối với .deb thì không quá khó, đối với iOS
Liên quan
Tôi nghĩ điều này đã phục vụ tôi một thời gian trước khi tôi tải PKGBUILD đầu tiên của mình lên AUR 🙂
Ai đó có thể cho tôi biết nó là gì không, tôi là người mới và tôi không biết liệu điều này có giúp tôi cài đặt một gói .deb nhưng cục bộ trong manjaro, chính xác là một trò chơi. Có nó hoạt động?
Tôi vừa viết một bài báo khác về cách tạo các gói cho Arch / manjaro từ các gói .deb
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Vâng, tôi đã xem nó rồi, nhưng tôi rất mới lạ và tôi không hiểu nếu không chỉ dòng này
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
những gì bạn có đằng sau
if [«$ {CARCH}» = 'x86_64 ′]; sau đó
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
phụ thuộc = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; sau đó
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
phụ thuộc = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Tôi không hiểu nó, nó trông rất phức tạp, chúng là các bước chung hoặc phần đầu tiên
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
nó có thể được thực hiện một mình để chuyển đổi .deb. .tar.gz?