.deb 文件和 .run 文件的区别

Man*_*nde 10 package-management

创建.deb 文件并安装它们和只运行.run 文件有什么区别?

slm*_*slm 8

通常,.deb 文件类似于 zip 文件,其中包含文件以及可以在安装后运行以在安装后向系统添加用户、组等的短脚本。

.run 文件通常是单个二进制可执行文件或包含可以安装的二进制 blob 的 shell 脚本。如果是 shell 脚本变种,它通常会包含一个二进制 blob,它通常与递归 zip 文件或 tar 文件同义。换句话说,它将包含文件的目录结构。

其他时候,这种类型的 .run 文件将只包含 .deb 或 .rpm 文件,这些文件将被转储到磁盘,并且可以单独安装,或者包含它们的脚本将它们转储到磁盘,然后尝试使用系统的包管理器软件安装它们。

例如,如果您从 Oracle 下载 Java JDK。一般来说,这是一个可执行文件,当执行将转储的.deb或.rpm文件到磁盘上,然后使用安装它们the package management tools: dpkgaptyum,或rpm

例子

下面是使用这些 .run 文件之一进行下载/安装的示例。扩展名是 .bin,但这只是装饰性的,除了帮助用户区分不同类型的文件外,扩展名实际上没有任何意义。

$ 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
Run Code Online (Sandbox Code Playgroud)

在这里,上面的文件将转储构成 JDK 的各种组件的包,之后您可以安装所有组件或仅安装您需要的组件。

这样做允许除了安装软件包之外还可以完成其他操作。例如,Oracle 有一个他们希望您接受的许可协议:

10.5 本协议是双方就其标的达成的完整协议。它取代所有先前或同时的口头或书面通信、提议、条件、陈述和保证,并优先于任何报价、订单、确认或双方之间与其主题相关的其他通信的任何冲突或附加条款,包括任何nary 代码许可、补充条款或许可软件中包含的其他许可。除非以书面形式并由各方授权代表签署,否则对本协议的任何修改均不具有约束力。

您同意上述许可条款吗?[是还是不是]

使用上面的安装程序,您可以看到它只包含文件目录的二进制 blob:

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/
...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这种类型的安装并不意味着调用包管理器,而只是将内容转储到单个目录树中,以便您可以将其移动到您想要的任何位置。

在生产环境中,通常情况下您不想使用包管理器,而是对部署有更多的控制。也许您要部署多个应用程序,并且每个应用程序都需要不同版本的 JDK。使用这种方法,您可以让它们更轻松地共存,然后通过包管理器说。

$ 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
Run Code Online (Sandbox Code Playgroud)

参考


Gil*_*il' 8

.deb文件是dpkg 的包,低级 Debian 包管理器(由 APT 及其亲属在后台调用)。甲.deb文件是Debian或衍生物如Ubuntu或薄荷包。

Debian 软件包包含属于软件包的文件以及描述软件包依赖项和其他元信息的“控制文件”,以及在安装、升级或卸载软件包时执行的安装脚本。

您可以.deb使用dpkg -c和查看文件的内容dpkg -I。如果没有dpkg,则可以使用ar t foo.deb来列出.deb文件的ar x foo.deb control.tar.gz各个control.tar.gz部分并提取该部分(对于其他部分也类似)。

Red Hat(以及 CentOS 和 Fedora 等亲戚)、SuSE 和其他人使用rpm,这是一种具有相似特征的不同格式。还有其他人在其他UNIX系统。

.run不是标准扩展名。一个.run文件大概是你可以执行的东西。它可能会安装一个程序或做一些完全不同的事情。