admin管理员组文章数量:1794759
Linux下deb包和rpm包区别
Linux安装软件的三种方式
- deb,rpm,yum,apt-get安装
- 源码编译安装
- 二进制安装
有的系统只支持使用rpm包安装,有的只支持deb包安装,混乱安装会导致系统问题。
rpm包主要用于redhat及分支如redhat,centos,Fedora等 而deb包主要用于debian及分支如debian,ubuntu等。 rpm包相对来说版本不是最新的,但是比较稳定;而deb包则相对来说版本比较新,一般某个新软件出来说可能有deb包,但是使用过程中容易引起bugs。
1 rmp包rmp 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。
rmp是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。
1.1 RPM包的名称格式(Apache-1.3.23-11.i386.rpm):“apache” 软件名称 “1.3.23-11”软件的版本号,主版本和此版本 “i386”是软件所运行的硬件平台,Intel 32位处理器的统称 “rpm”文件扩展名,代表RPM包
1.2 相关操作: rpm -ivh rpm包名 #安装软件,下面是参数说明 ##-i :install ,安装 ##-v : --verbose ,显示详细信 ##-h:–hash,进度条 ##–nodeps :安装前不需要检查依赖 rpm -Uvh rpm包名 #升级软件 rpm -e rpm包名 #卸载软件,其中如果在加上选项–nodeps ,表示卸载软件时,不检查依赖。这样会使那些使用软件包的软件在此之后可能会不能正常工作 rpm -qpi rpm包名 #查询软件包的详细信:执行 ###由于软件包比较多,一般会采取过滤。类如: rpm -qa | grep rpm软件包 rpm -qf rpm包名 #查询某个文件是属于那个rpm包的 rpm -qpl rpm包名 #查该软件包会向系统里面写入哪些文件 2 debdeb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。
deb 包本身有三部分组成:数据包,包含实际安装的程序数据,文件名为 data.tar.XXX;安装信及控制脚本包,包含 deb 的安装说明,标识,脚本等,文件名为 control.tar.gz;最后一个是 deb 文件的一些二进制数据,包括文件头等信,一般看不到,在某些软件中打开可以看到。
deb 本身可以使用不同的压缩方式。tar 格式并不是一种压缩格式,而是直接把分散的文件和目录集合在一起,并记录其权限等数据信。之前提到过的 data.tar.XXX,这里 XXX 就是经过压缩后的后缀名。deb 默认使用的压缩格式为 gzip 格式,所以最常见的就是 data.tar.gz。常有的压缩格式还有 bzip2 和 lzma,其中 lzma 压缩率最高,但压缩需要的 CPU 资源和时间都比较长。
data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即 / ),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。
而 control.tar.gz 则包含了一个 deb 安装的时候所需要的控制信。一般有 5 个文件:control,用了记录软件标识,版本号,平台,依赖信等数据;preinst,在解包data.tar.gz 前运行的脚本;postinst,在解包数据后运行的脚本;prerm,卸载时,在删除文件之前运行的脚本;postrm,在删除文件之后运行的脚本;在 Cydia 系统中,Cydia 的作者 Saurik 另外添加了一个脚本,extrainst_,作用与 postinst 类似。
2.1 相关操作: sudo dpkg -i xxx.deb # 安装软件包xxx.deb sudo dpkg -R xxx # 安装目录xxx下所有的软件包 sudo dpkg -r xxx.deb # 卸载软件包xxx.deb,但是保留软件配置信。有些软件会有个人设置的一些配置 sudo dpkg -P xxx.deb # 卸载软件包xxx.deb,且删除软件配置信。 sudo dpkg -I xxx # 搜索软件包 sudo dpkg -l # 列出所有已安装的deb包,同时显示版本号以及简短说明 sudo dkpg -p xxx # 查看包的具体信 sudo dkpg -L xxx # 查看一个软件包安装到系统里面的文件目录信。很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了,其实就可以用这个命令来查找 3 yumYUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包 并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次 次下载、安装。
3.1 基本语法 yum [选项] [参数]选项说明
-y :对所有的提问都回答"yes"
参数说明
install:安装rpm软件包 update:更新rpm软件包 check-update :检查是否有可用的更新rpm软件包 remove :删除指定的rpm软件包 list :显示软件包信 clean :清理yum过期的缓存 deplist:显示yum软件包的所有依赖关系
例子
#用yum的方式安装firefoc yum -y install firefox 3.2 修改网络yum源默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等 1)安装 wget, wget 用来从指定的 URL 下载文件
[root@hadoop101 ~] yum install wget2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件,
[root@hadoop101 yum.repos.d] pwd /etc/yum.repos.d [root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base .repo.backup3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一,
[root@hadoop101 yum.repos.d] wget mirrors.aliyun/repo/Centos-7.repo //阿里云 [root@hadoop101 yum.repos.d] wget mirrors.163/.help/CentOS7-Base-163.repo //网易 1634)使用下载好的 repos 文件替换默认的 repos 文件 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo5)清理旧缓存数据,缓存新数据
[root@hadoop101 yum.repos.d]#yum clean all [root@hadoop101 yum.repos.d]#yum makecache yum makecache 就是把服务器的包信下载到本地电脑缓存起来6)测试
[root@hadoop101 yum.repos.d]# yum list | grep firefox [root@hadoop101 ~]#yum 3.3 解压缩安装将你要安装的软件压缩包上传到服务器上再进行安装操作
将文件移动到/usr/tomcat/下,并解压!(示例)
apt是Linux软件包管理工具。 apt是一个命令行实用程序,用于在Ubuntu、Debian和相关Linux发行版上安装、更新、删除和管理deb软件包。 apt是为交互使用而设计的。最好在shell脚本中使用apt-get和apt-cache,因为它们在不同版本之间向后兼容,并且有更多选项和功能。 大多数apt命令必须以具有sudo权限的用户身份运行。
4.1 基本操作 apt update #从软件源服务器获取最新的软件信并缓存到本地。 #因为很多apt的其他命令都是要通过比对版本信来进行操作的,如果每次都去对比线上的版本信效率肯定不理想,也没必要,所以做了一个缓存的机制。 apt upgrade # 从本地仓库中对比系统中所有已安装的软件,如果有新版本的话则进行升级 apt list #列出本地仓库中所有的软件包名 apt list [package] #从本地仓库中查找指定的包名,支持通配符,比如"apt list zlib*“就能列出以zlib开头的所有包名 apt list --installed #列出系统中所有已安装的包名 apt search [key] #与list类似,通过给出的关键字进行搜索,列出所有的包和其描述 apt show [package] #列出指定包的详细情况,包名要填写完整。 apt install [package] #安装指定的包,并同时安装其依赖的其他包。 apt remove [package] #卸载包,但不删除相关配置文件。包名支持通配符 apt autoremove #卸载因安装软件自动安装的依赖,而现在又不需要的依赖包 apt purge [package] #卸载包,同时删除相关配置文件。包名支持通配符 apt clean #删除所有已下载的软件包 apt autoclean #类似clean,但删除的是过期的包(即已不能下载或者是无用的包)注意事项:
-
apt与apt-get的区别 apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。
在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。
-
/etc/apt/sources.list -是包管理工具 apt 所用的记录软件包仓库位置的配置文件
版权声明:本文标题:Linux下deb包和rpm包区别 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686876056a113603.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论