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ì?
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ì?
Câu trả lời:
.deb
cá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 .deb
tệ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 .deb
tập tin với dpkg -c
và dpkg -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 .deb
tệp và ar x foo.deb control.tar.gz
trích xuất control.tar.gz
phầ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.
.run
không phải là một phần mở rộng tiêu chuẩn. Một .run
tậ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.
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
.
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