Sự khác biệt giữa tệp .deb và tệp .run


10

Sự khác biệt giữa việc tạo tệp .deb và cài đặt chúng và chỉ chạy tệp .run là gì?


1
Bạn có ví dụ cụ thể trong tâm trí?
slm

Câu trả lời:


8

.debcác tệp là các gói cho dpkg , trình quản lý gói Debian cấp thấp (được APT và người thân của nó gọi ra dưới mui xe). Một .debtệp là một gói cho Debian hoặc cho một công cụ phái sinh như Ubuntu hoặc Mint.

Các gói Debian chứa các tệp thuộc về gói cũng như tệp kiểm soát của Cameron, trong đó mô tả các phụ thuộc của gói và thông tin meta khác và các tập lệnh cài đặt được thực thi khi gói được cài đặt, nâng cấp hoặc gỡ cài đặt.

Bạn có thể xem nội dung của một .debtập tin với dpkg -cdpkg -I. Nếu bạn không có dpkg, bạn có thể sử dụng ar t foo.debđể liệt kê các phần của .debtệp và ar x foo.deb control.tar.gztrích xuất control.tar.gzphần đó (và tương tự cho các phần khác).

Red Hat (và người thân như CentOS và Fedora), SuSE và những người khác sử dụng vòng / phút , một định dạng khác với các đặc điểm tương tự. Có những cái khác trên các hệ thống unix khác.

.runkhông phải là một phần mở rộng tiêu chuẩn. Một .runtập tin có lẽ là một cái gì đó bạn có thể thực hiện. Nó có thể cài đặt một chương trình hoặc làm một cái gì đó hoàn toàn khác.


8

Nói chung, tệp .deb tương tự như tệp zip, chứa tệp cùng với các tập lệnh ngắn có thể chạy cài đặt bài đăng để thêm người dùng, nhóm, v.v. vào hệ thống sau khi cài đặt.

Tệp .run thường là tệp thực thi nhị phân đơn hoặc tập lệnh shell có chứa một blob nhị phân có thể được cài đặt. Nếu đó là tập lệnh shell, nó thường sẽ chứa một blob nhị phân thường đồng nghĩa với tệp zip đệ quy hoặc tệp tar. Nói cách khác, nó sẽ chứa các cấu trúc thư mục của các tập tin.

Những lần khác, loại tệp .run này chỉ đơn giản chứa các tệp .deb hoặc .rpm sẽ được đưa ra đĩa và có thể được cài đặt riêng lẻ hoặc tập lệnh chứa chúng, sẽ chuyển chúng ra đĩa, sau đó thử để cài đặt chúng bằng phần mềm quản lý gói hệ thống của bạn.

Một ví dụ về điều này sẽ là nếu bạn tải xuống Java JDK từ Oracle. Nó thường là một tập tin thực thi duy nhất mà khi thực hiện sẽ đổ .deb hoặc .rpm file ra đĩa, và sau đó cài đặt chúng bằng cách sử the package management tools: dpkg, apt, yum, hoặc rpm.

Thí dụ

Dưới đây là một ví dụ về việc tải xuống / cài đặt sẽ như thế nào với một trong các tệp .run này. Phần mở rộng là .bin, nhưng đây đơn giản là mỹ phẩm, phần mở rộng thực sự không liên quan gì ngoài việc giúp người dùng phân biệt giữa các loại tệp khác nhau.

$ wget http://www.java.net/download/jdk7/archive/b125/binaries/jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin
$ ./jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin

Ở đây, tệp ở trên sẽ loại bỏ các gói cho các thành phần khác nhau tạo nên JDK, sau đó bạn có thể cài đặt tất cả chúng hoặc chỉ các gói mà bạn cần.

Làm theo cách này cho phép thực hiện thêm những việc khác ngoài việc cài đặt một gói. Ví dụ, Oracle có thỏa thuận cấp phép mà họ muốn bạn chấp nhận:

10.5 Thỏa thuận này là toàn bộ thỏa thuận của các bên liên quan đến vấn đề của mình. Nó thay thế tất cả các thông tin liên lạc bằng miệng hoặc bằng văn bản trước đây hoặc đương thời, các đề xuất, điều kiện, đại diện và bảo đảm và chiếm ưu thế đối với bất kỳ mâu thuẫn hoặc bổ sung nào của bất kỳ trích dẫn, đặt hàng, xác nhận hoặc liên lạc nào khác giữa các bên liên quan đến vấn đề của mình, bao gồm cả Bi Giấy phép mã nary, Điều khoản bổ sung hoặc các giấy phép khác có trong Phần mềm được cấp phép. Không có sửa đổi đối với Thỏa thuận này sẽ bị ràng buộc, trừ khi bằng văn bản và được ký bởi đại diện ủy quyền của mỗi bên.

Bạn có đồng ý với các điều khoản cấp phép trên không? [có hay không]

Với trình cài đặt ở trên, bạn có thể thấy rằng nó chỉ chứa một blob nhị phân của các thư mục của các tệp:

Extracting...
UnZipSFX 5.52 of 28 February 2005, by Info-ZIP (http://www.info-zip.org).
   creating: jdk1.7.0/
   creating: jdk1.7.0/lib/
  inflating: jdk1.7.0/lib/jexec      
   creating: jdk1.7.0/lib/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-attach.jar  
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-host-views.jar  
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/locale/
...

Trong trường hợp này, kiểu cài đặt này có nghĩa là không triệu tập trình quản lý gói mà chỉ đơn giản là chuyển nội dung ra một cây thư mục duy nhất để bạn có thể di chuyển nó xung quanh bất cứ nơi nào bạn muốn.

Trong môi trường sản xuất, trường hợp bạn không muốn sử dụng trình quản lý gói, nhưng có nhiều quyền kiểm soát hơn đối với việc triển khai. Có lẽ bạn có một số ứng dụng mà bạn đang triển khai và mỗi ứng dụng yêu cầu một phiên bản JDK khác nhau. Sử dụng phương pháp này, bạn có thể có tất cả chúng cùng tồn tại dễ dàng hơn sau đó nói thông qua trình quản lý gói.

$ pwd
/home/saml/jdk1.7.0
[saml@grinchy jdk1.7.0]$ ls -l
total 19308
drwxr-xr-x  2 saml saml     4096 Jan 13  2011 bin
-r--r--r--  1 saml saml     2487 Jan 13  2011 COPYRIGHT
drwxr-xr-x  5 saml saml     4096 Jan 13  2011 db
drwxr-xr-x 11 saml saml     4096 Jan 13  2011 demo
drwxr-xr-x  3 saml saml     4096 Jan 13  2011 include
drwxr-xr-x  6 saml saml     4096 Sep 29 10:57 jre
drwxr-xr-x  3 saml saml     4096 Sep 29 10:57 lib
-r--r--r--  1 saml saml     9005 Jan 13  2011 LICENSE
drwxr-xr-x  4 saml saml     4096 Jan 13  2011 man
-r--r--r--  1 saml saml    25379 Jan 13  2011 README.html
-r--r--r--  1 saml saml    20320 Jan 13  2011 README_ja.html
-r--r--r--  1 saml saml    15160 Jan 13  2011 README_zh_CN.html
-r--r--r--  1 saml saml     5348 Sep 29 10:58 register.html
-r--r--r--  1 saml saml     5645 Sep 29 10:58 register_ja.html
-r--r--r--  1 saml saml     4951 Sep 29 10:58 register_zh_CN.html
drwxr-xr-x  8 saml saml     4096 Jan 13  2011 sample
-rw-r--r--  1 saml saml 19631790 Jan 13  2011 src.zip

Người giới thiệu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.