安装软件包的三种方法
- rpm工具
- yum工具
- 源码包
rpm
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
yum
是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
源码包
源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错;RPM包是经过编译的,不能看到源代码,但是它安装更快,报错更容易解决,只有依赖性问题。
rpm包介绍
将 /dev/cdrom 挂载到 /mnt/ 下
[root@yolks1 mnt]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
查看iso镜像内容
[root@yolks1 mnt]# ls
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
将光驱挂载在/mnt下后我们列出mnt下的目录与文件,可以考到这些都是安装centos系统的所需文件,我们cd到Packages的文件下面看下,进入到该目录下后ls查看,我们可以看到rpm格式的安装包
yum-plugin-verify-1.1.31-42.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-42.el7.noarch.rpm
yum-utils-1.1.31-42.el7.noarch.rpm
zenity-3.22.0-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
这里以zsh-5.0.2-25.el7.x86_64.rpm,做讲解; zsh=包名 5.0.2=版本号 25.el7=发布版本号 x86_64=平台(表示系统是基于32位还是64位) rpm=后缀名
这里我使用的是centos7,centos7已经不区分64和32位了。
rpm工具用法
1.安装rpm : rpm -i[install]v[可视化]h[例如显示进度] *.rpm
#由于我已经在文件的当前目录下所以我实用输入了相对路径,如果不在包文件当前目录下,需要打上完整的绝对路径
[root@yolks1 Packages]# rpm -ivh zip-3.0-11.el7.x86_64.rpm
准备中... ################################# [100%]
软件包 zip-3.0-11.el7.x86_64 已经安装
2.升级rpm包 : -U(update)vh 新版本.rpm
[root@yolks1 Packages]# rpm -Uvh zip-3.0-11.el7.x86_64.rpm
准备中... ################################# [100%]
软件包 zip-3.0-11.el7.x86_64 已经安装
3.卸载rpm包 : -e *.rpm [卸载的话有些rpm包依赖比较强,需要删除卸载依赖再继续卸载]
[root@yolks1 Packages]# rpm -e zip
4.查看安装过的rpm包
[root@yolks1 Packages]# rpm -qa
5.查询指定包是否已安装 : -q参数后跟包名
[root@yolks1 Packages]# rpm -q zip
未安装软件包 zip
[root@yolks1 Packages]# rpm -q dhclient
dhclient-4.2.5-58.el7.centos.x86_64
6.列出包安装的文件 : -ql 包名
[root@yolks1 Packages]# rpm -ql dhclient
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/11-dhclient
/etc/dhcp/dhclient-exit-hooks.d
/etc/dhcp/dhclient-exit-hooks.d/azure-cloud.sh
/etc/dhcp/dhclient.d
/usr/lib64/pm-utils/sleep.d/56dhclient
/usr/sbin/dhclient
/usr/sbin/dhclient-script
/usr/share/doc/dhclient-4.2.5
/usr/share/doc/dhclient-4.2.5/README.dhclient.d
/usr/share/doc/dhclient-4.2.5/dhclient.conf.example
/usr/share/doc/dhclient-4.2.5/dhclient6.conf.example
/usr/share/man/man5/dhclient.conf.5.gz
/usr/share/man/man5/dhclient.leases.5.gz
/usr/share/man/man8/dhclient-script.8.gz
/usr/share/man/man8/dhclient.8.gz
/var/lib/dhclient
7.查看某个命令是来自哪个rpm包 : -qf 参数后跟命令的绝对路径
[root@yolks1 Packages]# rpm -qf /usr/bin/ls
coreutils-8.22-18.el7.x86_64
还可以直接将查询绝对路径的命令用来查看 : 反引号 ‘ `` ’
[root@yolks1 Packages]# rpm -qf `which vim`
vim-enhanced-7.4.160-4.el7.x86_64
8.查看包信息 : -qi 包名
[root@yolks1 Packages]# rpm -qi dhclient
Name : dhclient
Epoch : 12
Version : 4.2.5
Release : 58.el7.centos
Architecture: x86_64
Install Date: 2018年05月25日 星期五 05时28分59秒
Group : System Environment/Base
Size : 483094
License : ISC
Signature : RSA/SHA256, 2017年08月10日 星期四 23时36分17秒, Key ID 24c6a8a7f4a80eb5
Source RPM : dhcp-4.2.5-58.el7.centos.src.rpm
Build Date : 2017年08月04日 星期五 14时07分15秒
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://isc.org/products/DHCP/
Summary : Provides the ISC DHCP client daemon and dhclient-script
Description :
DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
individual devices on an IP network to get their own network
configuration information (IP address, subnetmask, broadcast address,
etc.) from a DHCP server. The overall purpose of DHCP is to make it
easier to administer a large network.
To use DHCP on your network, install a DHCP service (or relay agent),
and on clients run a DHCP client daemon. The dhclient package
provides the ISC DHCP client daemon.
yum工具用法
yum工具最大优势就在于可以联网去下载所需要的rpm包,然后自动安装,如果要安装的rpm包有依赖性关系,yum工具会帮我们依次安装所有相关的rpm包。
1.列出可用的rpm包 : yum list
[root@yolks1 Packages]# yum list
...... 省略n行
zip.x86_64 3.0-11.el7 base
zlib.i686 1.2.7-17.el7 base
zlib-devel.i686 1.2.7-17.el7 base
zlib-devel.x86_64 1.2.7-17.el7 base
zlib-static.i686 1.2.7-17.el7 base
zlib-static.x86_64 1.2.7-17.el7 base
zsh.x86_64 5.0.2-28.el7 base
zsh-html.x86_64 5.0.2-28.el7 base
zziplib.i686 0.13.62-5.el7 base
zziplib.x86_64 0.13.62-5.el7 base
zziplib-devel.i686 0.13.62-5.el7 base
zziplib-devel.x86_64 0.13.62-5.el7 base
zziplib-utils.x86_64 0.13.62-5.el7 base
列出来的3列分别代表 : 名字 多少位的 : 版本号及平台版本号 : 仓库名字
查看仓库名字的来源 :查看yum配置文件
[root@yolks1 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
查看具体来源文件 :
[root@yolks1 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo
2.yum搜索安装包 :search 包名
[root@yolks1 Packages]# yum search vim
精准搜索使用 yum list |grep "vim"
3.yum安装rpm包 : yum install -y 包名
[root@yolks1 Packages]# yum install -y zip
4.列出可用的组
[root@yolks1 Packages]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.nju.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
安装组件
yum groupinstall 'Virtualization Host'
5.卸载rpm包,同时依赖的包也卸载
[root@yolks1 Packages]# yum remove zsh
6.升级更新rpm包 : 不指定包名默认升级全部
[root@yolks1 Packages]# yum update zsh
7.搜索包的相关
yum provides "/*/zsh"
yum搭建本地仓库
如果网络不允许的话我们就需要自己搭建本地环境的yum
1.挂载镜像到/mnt/目录下
[root@yolks1 Packages]# cd /mnt/
[root@yolks1 mnt]# ls
CentOS_BuildTag EULA LiveOS RPM-GPG-KEY-CentOS-7 TRANS.TBL isolinux
EFI GPL Packages RPM-GPG-KEY-CentOS-Testing-7 images repodata
2.备份相关目录和文件
[root@yolks1 mnt]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
3.进入到yum.repos.d目录下
[root@yolks1 mnt]# cd /etc/yum.repos.d
[root@yolks1 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo
CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo
4.删除目录下所有文件
[root@yolks1 yum.repos.d]# rm -rf ./*
5.编辑文件dvd.repo,写入以下内容
[dvd] # 指定仓库名称
name=install dvd # 描述性字段
baseurl=file:///mnt #rpm包来源或路径,即光驱挂载的地方
enable=1 #是否可用,1为可用
gpgcheck=0 # 是否检查,0为不检查
6.清理软件源(缓存)
yum clean all
7.再次 yum list查看源
xterm.x86_64 295-3.el7 dvd
xulrunner.x86_64 31.6.0-2.el7.centos dvd
xvattr.x86_64 1.3-27.el7 dvd
xz-devel.x86_64 5.2.2-1.el7 dvd
yelp.x86_64 1:3.22.0-1.el7 dvd
yelp-libs.x86_64 1:3.22.0-1.el7 dvd
yelp-tools.noarch 3.18.0-1.el7 dvd
yelp-xsl.noarch 3.20.1-1.el7 dvd
yp-tools.x86_64 2.14-5.el7 dvd
ypbind.x86_64 3:1.37.1-9.el7 dvd
ypserv.x86_64 2.31-10.el7 dvd
yum-plugin-aliases.noarch 1.1.31-42.el7 dvd
yum-plugin-changelog.noarch 1.1.31-42.el7 dvd
yum-plugin-tmprepo.noarch 1.1.31-42.el7 dvd
yum-plugin-verify.noarch 1.1.31-42.el7 dvd
yum-plugin-versionlock.noarch 1.1.31-42.el7 dvd
zenity.x86_64 3.22.0-1.el7 dvd
zlib-devel.x86_64 1.2.7-17.el7 dvd
zsh.x86_64 5.0.2-28.el7 dvd
zziplib.x86_64 0.13.62-5.el7 dvd
已经安装过的rpm包,带@符号标识
拓展
- yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
- 搭建局域网yum源http://blog.lishiming.net/?p=500