Archlinux: Tạo các gói đa nền tảng và từ các gói .deb

Khoảng một năm trước, tôi đã giải thích cách tạo gói cho Archlinux. Hôm nay tôi sẽ giải thích cách tạo chúng từ các gói . Deb, những người được sử dụng trong Debian / Mint / Ubuntu / etc.
Bài viết này xuất hiện sau khi đọc một câu hỏi từ người dùng trong diễn đàn jorgegc bởi vì tôi không thể cài đặt một gói từ AUR, chủ yếu là vì nó đã lỗi thời và được sử dụng một phiên bản ngưng của PKGBUILD (may mắn là trước đây tôi đã tạo các gói theo cách này), tôi cũng sẽ giải thích cách tạo các gói chương trình cần Thư viện 32 bit, trong mã đóng o đã được biên dịch và nó có các gói khác nhau để tải xuống.

Cơ sở cho PKGBUILD là giống nhau, chỉ có một số thay đổi.
Thay đổi đầu tiên sẽ là việc sử dụng một câu nếu elif bởi Bash


if [ "${CARCH}" = 'x86_64' ]; then
ARCH='amd64'
md5sums=('192a0a222893d59d95f00c34f3c8a674')
depends=('openal' 'lib32-openal')
elif [ "${CARCH}" = 'i686' ]; then
ARCH='i386'
md5sums=('047c670443124193c5cc3dd54da99925')
depends=('openal')
fi
source=("http://www.unaurl.com/files/${name}.$ARCH.deb")

Trong ví dụ này, một biến đã được xác định mà sau này sẽ được sử dụng để thay đổi URL gói ở đâu (trong trường hợp này là kiến ​​trúc của gói để tải xuống).
Ngoài ra, tùy thuộc vào kiến ​​trúc, Tổng số MD5 vì vậy chúng tôi sẽ thay đổi chúng thành những cái tương ứng.

Khi sử dụng makepkg -g để tạo tổng MD5 Điều này sẽ chỉ tạo ra một tương ứng với kiến ​​trúc bạn đang sử dụng. Để biết tổng MD5 của gói khác, hãy tải xuống và sử dụng lệnh md5sum file.deb để biết bạn

Cuối cùng chúng ta thấy rằng trong ví dụ chúng ta thay đổi các phụ thuộc. Trong một số chương trình 64-bit, cần phải cài đặt Phiên bản 32-bit của một số thư viện vì vậy chúng tôi phải chỉ ra chúng. Nếu chúng không cần thiết, chỉ cần xác định biến theo cách thông thường.

Bây giờ đối với các gói .deb, chúng ta sẽ chỉ cần các dòng sau bên trong hàm gói ():

cd "${srcdir}/"
tar xvzf data.tar.gz -C .
cp -r usr ${pkgdir}

Như bạn thấy, chúng ta chỉ cần 3 dòng trong trường hợp này để tạo gói. Nếu cần thứ gì đó khác (ví dụ: sao chép một tệp không đi kèm với gói hoặc sửa đổi nội dung của một tệp), bạn chỉ cần đặt nó như với bất kỳ gói nào khác.

Điều tương tự cũng có thể áp dụng (với một số thay đổi) nếu thay vì .deb, chúng ta sẽ sử dụng các gói rpm hoặc các loại gói khác. Chức năng xây dựng () là không cần thiết, vì vậy chúng ta không cần thêm nó.

Và thì đấy, chúng ta có một gói multilib hoặc được tạo từ một gói deb đã sẵn sàng để sử dụng.
Tôi hy vọng bạn thích nó và nó đã giải thích tốt cho tôi 😀


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   ulysses dijo

    Không phải nó dễ dàng hơn để sử dụng kiểm tra cài đặt?

  2.   Luciano Lagassa dijo

    Chào. Tôi có một số kịch bản bash. Một để tạo các thư mục và tệp cơ bản cho gói gỡ lỗi. Và cái cuối cùng để tạo gói từ tất cả các tệp và thư mục. Nếu bạn quan tâm, tôi có thể chia sẻ nó.

    1.    jorgecg dijo

      Tất nhiên nó quan tâm ... ít nhất là đối với tôi.

      Bây giờ tôi ở với Manjaro, tôi đánh giá cao tất cả các thông tin có thể.

  3.   jorgecg dijo

    Bạn tuyệt vời làm sao, đối tác.

    Tôi sẽ nói với bạn trong diễn đàn rằng nếu bạn có thể giải thích cho tôi cách biên dịch các gói .deb và tôi chưa nói với bạn điều gì để không lạm dụng lòng hảo tâm của bạn…. và tôi vào trang và tôi thấy rằng bạn đã tải lên một bài báo giải thích toàn bộ quá trình.

    Điều này cho thấy bạn là một người rộng lượng.

    Tôi đã nói, bạn là một vết nứt.

    lời chúc mừng

  4.   Anibal dijo

    Đó là một người bạn tuyệt vời, một lần tôi đã thử một phần mềm mà tôi không nhớ tên đã chuyển đổi từ .deb thành .rpm, nhưng nó không hoạt động tốt với tôi.

    ai đó có vòm có thể kiểm tra xem phần mềm này có được thông qua tốt đến rpm và cài đặt mở tốt không?

    http://www.justcloud.com/download/linux-64

    Đó là sao lưu trên đám mây, tôi đã trả tiền một lúc và tôi có hơn 40gb trên đám mây =)

  5.   nguồn cảm hứng dijo

    Tuyệt quá! Tôi luôn nói với bản thân rằng một ngày nào đó tôi muốn làm một gói, ngay cả khi nó phải biết làm thế nào để làm điều đó :).

    Trong các loại bài đăng này, tôi đánh giá cao việc blog triển khai tùy chọn để thêm các mục như thế này vào "mục yêu thích" trong tài khoản của tôi

    1.    chinoloco dijo

      Hoàn toàn đồng ý, tôi đã trồng nó, nhưng không có gì 🙂
      Nó cũng sẽ tốt, nếu có thể theo dõi những người dùng nhất định

  6.   Rabba dijo

    Ông già tuyệt vời, tôi đã sử dụng manjaro được vài ngày và để nghiên cứu, tôi cần cài đặt trình theo dõi gói từ cisco nhưng nó chỉ có gói .deb của phiên bản mới nhất và ke ở trong AUR luôn khiến tôi gặp lỗi khi biên dịch , Tôi hy vọng với những bước này, tôi có thể cài đặt nó vì thực sự tôi đã sử dụng bạc hà linux, cảm ơn bạn rất nhiều

  7.   găng tay dijo

    để xem liệu ai đó có dám đưa vào AUR Multisystem

    phụ thuộc vào các thư viện deb không có trong vòm

    Nhưng nếu nó hoạt động, chức năng của nó là tạo nhiều mặt dây chuyền ISO với grub2 tốt hơn so với unetbootin chỉ làm một.

    Hiện tại tôi có một ISO ubuntu bên trong cho phép tôi thêm hình ảnh nếu tôi muốn khởi động từ nó trên chính USB

    nhưng nếu không ai dám lưu vé

  8.   găng tay dijo

    Xin lỗi, đã có một hệ thống đa hệ thống và tôi nghĩ là không

    1.    găng tay dijo

      Trong đa hệ ...

      nhưng thay đổi kích thước vì yaourt đưa ra các vấn đề và họ đã đặt nó là tùy chọn

  9.   marcos dijo

    Tuyệt vời 😀 được chấp thuận với "Purrr" một chương trình đổi tên tệp hàng loạt.

  10.   Tháng tư4xas dijo

    Kính trọng,

    Hiện tại trong AUR họ đang loại bỏ những gói không có chức năng package (), làm sao tôi biết được những dòng nào để đặt ở đó? Tức là mình có nhiều gói và mình đã làm theo cách này nhưng không biết có ổn không https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD những gì tôi thực sự đã làm là chuyển những gì có trong build () sang package () nhưng như tôi đã nói, tôi không biết nó có ổn không ... Bạn có thể cho tôi ý kiến ​​và đề xuất của bạn được không?

    Cảm ơn 😀

  11.   Azazel dijo

    Cảm ơn về thông tin tôi sẽ đánh dấu nó để tham khảo trong tương lai.

  12.   đồ lặt vặt dijo

    Ai đó có thể giải thích cho tôi 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 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 nhìn và họ bảo tôi cài đặt gói deb2targz nhưng tôi gặp lỗi khi cài đặt nó từ thiết bị đầu cuối và tôi không biết liệu nó có thể được không

    1.    dưa chua dijo

      Điều tương tự cũng xảy ra với tôi; Tôi cần cài đặt trên Kademar dựa trên Arch; một vài gói mà tôi chỉ nhận được trong .deb
      Ai đó có thể giúp tôi?

      1.    valdo dijo

        Nếu ý của bạn là lỗi trong quá trình cài đặt deb2targz, thì tôi vừa cài xong bằng lệnh yaourt -S deb2targz. Tất nhiên, trong ArchLinux.

  13.   Bộ nhớ đám mây miễn phí dijo

    Bài rất nhiều thông tin. Cám ơn vì đã chia sẻ.

  14.   Chim tức giận dijo

    Bài tốt. Cảm ơn vì đã chia sẻ thông tin hữu ích này.

  15.   Ứng dụng cho PC dijo

    Cảm ơn cho bài viết hữu ích này. Nó sẽ giúp ích rất nhiều.

  16.   jacob dijo

    chào bạn, bạn có thể để lại script cho việc chuyển đổi và cách sử dụng nó không? Đó là trong các phần nó hơi nhầm lẫn, tôi đã có deb mà tôi muốn chuyển đổi và tôi biết rằng có thể vì google chrome của AUR là deb nhưng tôi không biết cách tạo "MAKEPKG SI" với deb khác 🙁