Answers:
.deb
文件是dpkg的软件包,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
文件大概是东西,你可以执行。它可能会安装程序或执行完全不同的操作。
通常,.deb文件类似于zip文件,该文件包含一些文件以及一些短脚本,这些脚本可以在安装后运行,以在安装后向系统中添加用户,组等。
.run文件通常是单个二进制可执行文件或包含可安装的二进制Blob的Shell脚本。如果它是shell脚本的变体,则通常会包含一个二进制blob,该二进制blob通常与递归zip文件或tar文件同义。换句话说,它将包含文件的目录结构。
在其他时间,这种类型的.run文件将仅包含.deb或.rpm文件,这些文件将转储到磁盘中,并且可以单独安装,或者包含它们的脚本将其转储到磁盘中,然后尝试使用系统的软件包管理器软件安装它们。
例如,如果您从Oracle下载Java JDK。一般来说,这是一个可执行文件,当执行将转储的.deb或.rpm文件到磁盘上,然后使用安装它们the package management tools: dpkg
,apt
,yum
,或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
在这里,上面的文件将转储组成JDK的各种组件的软件包,之后,您可以安装所有组件或仅安装所需的组件。
通过这种方式,除了安装软件包之外,还可以做其他事情。例如,Oracle拥有他们希望您接受的许可协议:
10.5本协议是双方就其标的物达成的全部协议。它取代了之前或同期的所有口头或书面通讯,提议,条件,陈述和保证,并优先于各方之间就其标的物,包括任何Bi,一元代码许可,补充条款或许可软件中包含的其他许可。除非经双方授权代表书面签署,否则对本协议的任何修改均不具有约束力。
您是否同意上述许可条款?[是还是不是]
通过以上安装程序,您可以看到它仅包含文件目录的二进制二进制文件:
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/
...
在这种情况下,这种安装方式不是召唤软件包管理器,而是简单地将内容转储到单个目录树中,以便您可以将其移动到所需位置。
在生产环境中,通常不希望使用包管理器,而是拥有对部署的更多控制权。也许您要部署几个应用程序,每个应用程序都需要不同版本的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