1.软件管理器
发行版代表 | 软件管理机制 | 使用命令 | 在线升级功能(命令) |
Red Hat/Fedora | RPM | rpm, rpmbuild | YUM (yum) |
Debian/Ubuntu | DPKG | dpkg | APT (apt-get) |
文件格式 | 文件名格式 | 直接安装与否 | 内含程序类型 | 可否修改参数并编译 |
RPM | xxx.rpm | 可 | 已编译 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未编译的源代码 | 可 |
RPM最大的问题为软件之间的依赖性问题,这个问题可通过 YUM在线升级 解决。
2.RPM软件管理程序:rpm
因为yum就可以直接用来进行安装的操作,所以基本上rpm这个命令一般用来查询与检验。
2.1RPM安装
rpm -ivh package_name或网络上某个文件地址
选项与参数:
-i:install安装的意思。
-v:查看更详细的安装的信息。
-h:显示安装进度。
--nodeps:强制安装,但安装后可能无法使用
更多参数man rpm
查询。
2.2RPM升级与更新
-Uvh | 若软件没安装,直接安装;若安装,则更新 |
-Fvh | 若软件没安装,不安装;只有安装的软件才会被升级 |
2.3RPM查询
rpm -qa
<==已安装软件
rpm -q[licdR] 已安装的软件名称
<==已安装软件
rpm -qf 存在与系统上面的某个文件名
<==已安装软件
rpm -qp[licdR] 未安装的某个文件名称
<==查看RPM文件
选项与参数:
-q:查询后面接的软件是否安装。
-qa:列出在本机安装的所有软件名称。
-qi:列出该软件的详细信息。
-ql:列出该软件的所有文件与目录所在的完整文件名。
-qc:列出该软件的所有配置文件。
-qd:列出该软件的所有说明文件。
-qR:列出该软件的依赖软件所含的文件。
-qf:后面接文件名,找出该文件属于哪一个已安装的软件。
-q scripts:列出是否有安装后需要执行的脚本文件。
-qp[licdR]:找出某个RPM文件内信息,而非已安装的软件。
2.4RPM验证与数字签名
rpm -Va
rpm -V 已安装的软件名称
rpm -Vp 某个rpm文件的文件名
rpm -Vf 在系统上面的某个文件
选项与参数:
-V:若该软件的文件被修改过才显示。
-Va:列出目前系统上面所有可能被修改过的文件。
-Vp:后面跟文件名,列出该软件内可能被修改过的文件。
-Vf:显示某个文件是否被修改过。
2.5RPM卸载与重建数据库
rpm -e 软件名称
注意:卸载的过程一定要由最上层往下解除,以rp-pppoe为例,这个软件主要是根据ppp这个软件来安装的,所以卸载ppp的时候,就必须先卸载rp-pppoe才行,否则会发生结构上的问题。
由于RPM文件常常会安装、删除、升级等,某些操作或许可能会导致RPM数据库内文件的损坏,可通过重建数据库来解决。
rpm --rebuilddb
3.YUM在线升级功能
3.1利用YUM进行查询、安装、升级与删除功能
查询功能:
yum [option] [查询工作选项] [相关参数]
选项与参数:
[option]:
-y:需要使用者输入时,自动提供yes的回应。
--installroot=/some/path:将软件安装在/some/path而非默认路径
[查询工作选项]:
search:查找某个软件名称或是描述(description)的重要关键字。
list:列出目前yum管理的所有软件与版本。
info:同上。
provides:从文件去查找软件。
安装/升级功能:
yum [option] [安装与升级的工作选项] [相关参数]
选项与相关参数:
install:后面接要安装的软件
update:后面接要升级的软件,若要整个系统都升级,直接update即可。
删除功能:
yum remove 软件
3.2YUM的配置文件
[root@study ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[base]:代表软件源的名字,可以随便取。
name:简单说明软件源的意义。
mirrorlist=:列出软件源可以使用的镜像站,不用可以注释。
baseurl=:这个最重要,是软件源的实际地址,可修改更改软件源的地址。
enable=1:让这个软件源被启用,不想启动设为0。
gpgcheck=1:1是查看RPM文件内的数字签名。
gpgkey=:数字签名的公匙文件所在位置,使用默认值即可。
修改软件源产生的问题与解决方法:
修改了网址却没有修改软件源的名称(中括号内的文字),可能会造成本机的列表与YUM服务器的列表不同步,此时就会出现无法更新的问题。
通过清楚本机上的旧数据处理:
yum clean [packages|headers|all]
选项与参数:
packages:将已下载的安装文件删除。
headers:将下载的安装文件头删除。
all:将所有软件源数据都删除。
3.3YUM的软件群组功能
yum [群组功能] [软件群组]
选项与参数:
grouplist:列出所有可用的软件群组。
groupinfo:后面接群组,了解该群组内的所有文件名。
groupinstall:安装一整组的软件群组。
groupremove:删除某个软件群组。
如果想要groupinstall默认安装好所有的optional软件,可修改配置文件如下:
[root@study ~]# vim /etc/yum.conf
.....(前面省略).....
distroverpkg=centos-release # 找到这一行,底下新增一行!
group_package_types=default, mandatory, optional
.....(底下省略).....
3.4EPEL
在Fedora基金会里发展了一个扩展软件计划( extra Packages for Enterprise Linux,EPEL),这个计划主要针对Red Hat Enterprise Linux来开发。
例:
我的系统想通过Centos 7的EPEL计划来安装netcdf以及R这两个软件:
首先,针对epel进行yum的配置文件处理:
[root@study ~]# vim /etc/yum.repos.d/epel.repo
[epel]
name = epel packages
baseurl = https://dl.fedoraproject.org/pub/epel/7/x86_64/
gpgcheck = 0
enabled = 0
接下来,使用这个软件源安装:
[root@study ~]# yum --enablerepo=epel install netcdf R
3.5使用本机的安装光盘
将光盘挂载到某个目录,这里是/mnt目录:
[root@study ~]# vim /etc/yum.repos.d/cdrom.repo
[mycdrom]
name = mycdrom
baseurl = file:///mnt
gpgcheck = 0
enabled = 0
[root@study ~]# yum --enablerepo=mycdrom install software_name
※file://是一个协议标识符,它告诉yum这是一个文件系统上的路径,而不是通过http或ftp等网络协议访问的路径。
4.SRPM的使用:rpmbuild
rpmbuild [option] SRPM文件
[option]:
--rebuild:这个选项会将后面的SRPM进行编译与打包,最后会产生RPM文件,但是产生的RPM文件没有安装到系统上。
--recompile:不仅编译与打包,还安装。
评论区