Linux入门基础——软件包的安装

简介: Linux入门基础——软件包的安装

软件包安装

软件包管理简介

软件包分类

软件包的分类

  • 源码包
  • 二进制包

源码包

🎈源码包优点:

  • 开源,如果有足够的能力,可以根据自己的需要修改代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定效率也更高
  • 卸载方便

🎈源码包缺点:

  • 安装过程的步骤较多,容易出现错误
  • 编译的时间较长,安装的时间比二进制包时间长
  • 编译安装,一旦出现错误一般人很难解决

二进制包

分类:DPKG包、RPM包

🚀二进制包的优点:

  • 安装简单
  • 安装速度快

🚀二进制包的缺点:

  • 经过编译,不能看见源码
  • 功能选择不够灵活
  • 依赖性

RPM包管理——RPM命令管理

RPM包的命名规则

httpd-2.4.6-80.el7.centos.x86_64.rpm
  • httpd:软件包名
  • 2.4.6:软件版本
  • 80:软件发行次数
  • el7.centos:软件发行商
  • x86_64:适合的硬件平台
  • rpm:RPM包的扩展名

RPM包的依赖性

  1. 树形依赖 a->b->c
    在使用rpm来安装RPM包时,会因为RPM包的依赖性而导致失败,所以要按顺序安装,安装c需要先安装b,安装b需要先安装a,卸载的时候要先卸载a,在卸载b,最后卸载c
  2. 环形依赖 a->b->c->a
    当遇见环形依赖时,有些人就会认为这是一个死局,毕竟无论如何从环形依赖当中跳出来,其实解决方法很简单——把软件包a、b、c、用一条命令同时安装就能解决环形依赖问题
  3. 函数库依赖
    当出现函数库依赖时,前往依赖查询网站:www.rpmfind.net搜索报错提示中的函数库名,并且安装就可以解决。

RPM包的安装与升级

RPM包一般都有系统默认的安装路径,而源码包一般要手工指定安装路径(/usr/local)

安装路径 含义
/etc 配置文件安装目录
/usr/bin 可执行命令安装目录
/usr/lib 程序所用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置
[root@localhost~]# rpm -ivh 包全名
#包全名,注意含有包全名的路径要使用绝对路径
  -i:安装(install)
  -v:显示更详细的信息(verbose)
  -h:打印#,显示安装进度(hash)
  --nodeps:不检测依赖性安装
  --replacefiles:替换文件安装,若已经安装的软件包的部分文件损坏,可以使用这个命令修复
  --replacepkgs:替换软件包安装,将软件包重复安装一遍
  --force:强制安装
  --test:测试安装,不会安装,只是检测一下依赖性
  --prefix:指定安装路径
[root@localhost~]# rpm -Uvh 包全名
  -U:升级安装,若没有则先安装再升级(upgrade)
[root@localhost~]# rpm -Fvh 包全名
  -F:升级安装,没有就不安装(freshen)

RPM包的查询

[root@localhost~]# rpm 选项 查询对象
[root@localhost~]# rpm -q 包名
  -q:查询(query)
[root@localhost~]# rpm -qa
#查询系统中所有安装软件包
[root@localhost~]# rpm -qi 包名
  -i:查询软件信息(information)
[root@localhost~]# rpm -ql 包名
  -l:列出软件包中的所有文件列表和软件所安装的目录(list)
[root@localhost~]# rpm -qlp 包全名
  -p:查询没有安装的软件包的信息(package)
[root@localhost~]# rpm -qf 系统文件名
  -f:查询系统文件属于哪个软件包(file)
[root@localhost~]# rpm -qR 包名
  -R:查询软件包的依赖性(requires)

RPM包的卸载

[root@localhost~]# rpm -e 包名
  -e:卸载(erase)
  --nodeps:不检测依赖性

不检测依赖性的话,会导致其他的软件包无法使用,不建议使用

RPM包的校验

[root@localhost~]# rpm -V 已安装的包名
  -Va:校验所有已安装的软件包(verify)
  -Vf 系统文件名:校验某个系统文件

RPM包管理——yum在线管理

yum源的搭建

yum源既可以是网络yum源,也可以是本地光盘作为yum源。

网络yum源服务器搭建

在网络正常的情况下,Centos的yum是可以直接使用的。yum源配置文件保存在/etc/yum.repos.d目录中,文件的拓展名一定是*.repo*

[root@localhost ~]# 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  CentOS-x86_64-kernel.repo

默认情况下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
······

文件里有五个yum源容器,这里以第一个为例

  • [base]:容器名称,一定要放在[]中
  • name:容器说明
  • mirrorlist:镜像站点,这个可以注释掉
  • baseurl:我们的yum源服务器的地址,默认官方地址,可以修改为你喜欢的yum源地址
  • enabled:此容器是否生效,若不写或等于1说明生效,若等于0则说明不生效
  • gpgcheck:代表RPM数字证书是否生效
  • gpgkey:数字证书公钥保存位置

本地yum源搭建

  1. 挂载光盘
[root@localhost~]# mount /dev/cdrom /mnt/cdrom
  1. 修改其他几个yum源配置文件的拓展名,让他们失效,主要修改拓展名“.repo”
[root@localhost~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv Centos-Base.repo Centos-Base.repo.bak
[root@localhost yum.repos.d]# mv Centos-Debuginfo.repo Centos-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv Centos-Vault.repo Centos-Vault.repo.bak
  1. 修改光盘yum源配置文件CentOS-Media.repo
[root@localhost yum.repos.d]# vim CentOS-Media.repo 
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为光盘挂载地址
#        file:///media/cdrom/
#       file:///media/cdrecorder/
gpgcheck=1
enabled=1
#让这个配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

常用yum命令

查询

  1. 查询所有软件包
[root@localhost ~]# yum list
  1. 查询是否yum服务器中是否包含某个软件包
[root@localhost ~]# yum list 包名
  1. 搜索关键字
[root@localhost ~]# yum search 关键字
  1. 查询指定软件包信息
[root@localhost ~]# yum info 包名
  1. 查询包含指定内容的软件包,如果我们想安装某个命令
[root@localhost ~]# yum provides 关键字

安装

[root@localhost ~]# yum install -y 包名

更新

[root@localhost ~]# yum -y update 包名

卸载

[root@localhost ~]# yum remove 包名


相关文章
|
5天前
|
Linux 开发工具 C语言
Linux 安装 gcc 编译运行 C程序
Linux 安装 gcc 编译运行 C程序
24 0
|
5天前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
16 0
|
8天前
|
NoSQL Linux 测试技术
Redis的安装(Linux版)
Redis的安装(Linux版)
151 1
|
2天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
15 2
|
2天前
|
负载均衡 Java 应用服务中间件
nginx安装在linux上
nginx安装在linux上
23 2
|
4天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
42 2
|
4天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
7 0
|
4天前
|
Ubuntu Linux 开发工具
WSL2(3)安装Linux headers完美解决方案
WSL2(3)安装Linux headers完美解决方案
5 0
|
5天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
20 0
|
8天前
|
Linux
ZooKeeper的安装(Linux版)
ZooKeeper的安装(Linux版)
21 1