软件包是什么?
是将应用程序、配置文件和数据打包在一起的产物。
所有的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下一样方便。
suse、red hat、fedora等发行版都是用rpm包,Debian和Ubuntu则使用.deb格式的软件包。
包管理器是什么?
包管理器(package manager)是一种工具,它允许用户在操作系统上安装、删除、升级、配置和管理软件包。
软件包管理器可以是像 软件中心 这样的图形化应用,也可以是像 apt-get 或 pacman 这样的命令行工具。
包管理器是如何工作的?
几乎所有的 Linux 发行版都有软件仓库,它基本上是软件包的集合。
软件库包含不同种类的软件包。
软件仓库也有元数据文件,其中包含了软件包的信息,如软件包的名称、版本号、软件包的描述和软件仓库名称等。
系统上的包管理器首先会与元数据进行交互,在系统上创建一个元数据的本地缓存。
- 当你运行包管理器的更新选项(例如 apt update)时,软件包管理器会通过引用仓库中的元数据来更新本地元数据缓存;
- 当你运行软件包管理器的安装命令(例如 apt install package_name)时,软件包管理器会引用这个缓存;如果在缓存中找到了包的信息,就会使用互联网连接到相应的仓库,并在你的系统上安装之前先下载包。
一个包可能有很多依赖关系,也就是说在安装之前需要安装其他软件包。软件包管理器通常会处理这些依赖关系,并将其与你正在安装的软件包一起自动安装。
rpm
rpm是红帽公司开发的软件包管理方式。
全称为 redhat package management,用于安装 卸载 .rpm软件。
rpm软件包管理安装软件的时候,会产生一系列问题,比如,你安装一个软件包,而这个软件包有依赖软件,那么你需要先安装依赖软件
#安装 i.安装 v.显示详细过程 h.以进度条显示 $ rpm -ivh xxx.rpm #卸载 需要手动解决依赖 $ rpm -e xxx.rpm #升级 $ rpm -Uvh xxx.rpm #查看是否已经安装 $ rpm -q xxx.rpm #查询软件的安装路径 $ rpm -ql xxx.rpm #查询软件的配置文件路径 $ rpm -qc xxx.rpm
串联下:
使用wget下载一个 rpm包, 然后用 rpm -ivh xxx.rpm 安装这个软件,
嫌麻烦的话,可以直接用 yum install sqoop 来自动下载和安装依赖的rpm软件。
yum
全称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
配置文件是/etc/yum.conf
#安装xxx软件 $ yum install xxx #删除软件包 $ yum remove xxx
注:yum工具是红帽子才有的软件管理工具,例如suse和乌班图等系统,就没有yum
ap-get
ap-get是ubuntu下的一个软件安装方式,它是基于debain。
#安装包 $ sudo apt-get install package #删除包 $ sudo apt-get remove package
wget
wget不是安装方式,他是一种下载软件,类似与迅雷。 如果要下载一个软件,我们可以直接 wget 下载地址。
著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
2 包管理工具 yum
3 支持tar包
Debian系列
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
2 包管理工具 apt-get
3 支持tar包
tar vs rpm
tar 只是一种压缩文件格式,一般包括编译脚本,可以在自己的环境下编译。
rpm 一般都是预先编译好的文件,直接通过rpm命令进行安装删除等操作,很可能已经绑定到某种CPU或者发行版上