目录
通过源代码编译安装
通过RPM软件包安装
RPM软件包
RPM数据库
通过yum软件仓库安装
配置本地yum源
通过yum安装软件
通过dnf软件仓库安装
RPM软件包相关路径
Linux安装方式主要有源码安装、单包安装、依赖包安装
安装方式 安装包格式 安装工具 适用的操作系统 安装软件包例子 源码安装 tar压缩包 解压缩工具tar
编译工具make和gcc适用于所有的操作系统 tar xvf 软件压缩包
进入到解压后的软件包
./configure、make、make install进行编译单包安装 rpm包 rpm包管理器 适用于RedHat/CentOS/openSUSE/Fedora rpm -ivh 软件包 deb包 dkpg软件管理包 适用于Debian/Ubuntu sudodpkg -I 软件包 依赖包自动安装 rpm包 yum或dnf 适用于RedHat/CentOS/Fedora yum/dnf install 软件包 YaST 适用于openSUSE zypper in 软件包 deb包 apt 适用于Debian/Ubuntu sudo apt-get install 软件包 我们以下主要讲解源代码、单包RPM、依赖包Yum/Dnf的安装方式
源代码:主要通过tar包实现安装,tar包将源代码打包为tar.gz等的压缩文件,需要将其编译为二进制可执行文件后才能够正常运行
RPM:通过rpm包实现安装,rpm包是Redhat Linux提供的一种包封装格式;将源代码和安装规则打包
Yum/Dnf:将有依赖关系的rpm包打包到一起进行安装(实际安装的包还是rpm包)
通过源代码编译安装
通过源代码编译安装可以根据需求定制软件,可移植性高
源码包命名规范
命名格式:名称-版本-修正版-类型
例如:software-1.2.3-1.tar.gz
software表示软件名称
1.2.3表示版本号
1表示修正版本
tar.gz表示文件类型安装步骤
下载源代码安装包
将源代码进行解压(可以将其解压到指定目录)
命令:tar zxvf 压缩包.tar.gz 或 tar jxvf 压缩包.tar.bz2
设置源代码安装的目标文件,并按照需求配置参数
在解压后源代码目录下使用此命令:
./configure(检查编译环境、相关库文件以及配置参数,并生成makefile;)
如果要指定源码的安装目录可以使用此命令./configure --prefix=/opt/目录
通过make进行编译,将源代码编程可执行的二进制文件
通过make install将编译好的二进制文件复制到系统并设置应用环境
特点
兼容性好,适用于所有系统,可定制
编译麻烦,并缺乏自动依赖管理,升级麻烦
通过RPM软件包安装
RPM软件包
RPM软件包命名规范
命名规范:名称-版本-修正版-操作系统-硬件平台-类型
例如: http-parser-2.7.1-1.el7.x86_64.rpm
http-parser 表示软件名称
2.7.1 表示版本号
1 表示修正版本
el7 表示操作系统类型(其中el7表示该操作系统为 RedHat 7.x 或 CentOS 7.x 操作系统)
x86_64 表示硬件平台(此处表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台-即可以跨平台)
rpm 表示类型RPM软件包获取
1、从本地镜像获取
mount /dev/cdrom /media/cdrom 将镜像挂载(存放在挂载目录下的Packages)
cd /media/cdrom/Packages 在该目录下可以查看到镜像里的rpm包,可以直接将这个rpm包进行安装
2、从网上获取(FTT或HTTP)
需要先从网上将rpm软件包下载下来,然后再进行安装
RPM软件包安装、升级、卸载
将源代码和安装规则打包成一个RPM软件包,能够更加快捷的安装软件
rpm参数
-i 安装软件包
-v 显示软件安装过程中的详细信息
-h 在安装或升级过程中以“#”号显示安装进度
-e 卸载指定软件包
-U 检查并更新系统中已安装的软件包(若软件包未安装则安装)
-F 检查并更新系统中已安装的软件包(若软件包未安装则放弃安装)
-q 查询该软件包是否已经安装
rpm -ivh [软件包目录] 安装软件包
rpm -e [软件包目录] 卸载软件包
rpm -Uvh [软件包目录] 更新软件包
RPM软件包相关信息查询
rpm -qf 文件 查看指定文件是由哪个软件包安装的
rpm -qa 查看系统中以rpm方式安装的所有软件包
rpm -qi 软件名 查看已安装的指定软件的详细信息
rpm -ql 软件名 查询已安装软件包的文件列表
rpm -qc 软件名 查询已安装的指定软件的配置文件(没有配置文件说明可能该服务的依赖软件包没有安装全)
rpm -V 软件包目录 检验软件包是否被修改过(如果没有输出,则表示文件没有被修改)
输出S:表示大小改变
输出M:表示权限改变
5: MD5改变
D: 设备改变
L: 连接改变
D: 设备改变
U: 用户改变
G: 组改变
T: 日期和时间改变
P: 能力丢失
RPM数据库
rpm软件包在安装时会自动生成一个数据库文件;该数据库存放着软件包名称、版本、依赖关系、功能说明、包安装后生成的文件路径信息以及校验码信息
数据库目录存放在以 /var/lib/rpm中以__db开头的文件
rpm --rebuilddb 修复RPM数据库
rpm --initdb 初始化数据库(如果数据库不存在则创建数据库,如果存在则不执行任何操作)
如果误操做导致rpm数据库损坏,进行以下操作
cd /var/lib/rpm
rm -rf __db.00* 删除当前的RPM数据库
rpm --rebuilddb 修复RPM数据库
特点
使用简单,支持多平台,能够追踪软件依赖关系
在通过RPM安装软件时,此软件所依赖的软件也需要再去安装,要自己去分析软件包之间的依赖关系
通过yum软件仓库安装
简化RPM管理软件的难度,可以自动分析软件包之间的依赖关系
可以把Yum理解为大量RPM软件包合并得到的,进一步降低了软件的安装难度
Yum软件包提供方式(称为Yum源)
网站形式(Http Yum源)
http(通过访问Web服务器存放的软件仓库来下载软件)
文件形式(Ftp Yum源)
ftp(通过访问Ftp服务器存放的软件仓库来下载软件)
本地形式(本地Yum源)
file(将光盘挂载,通过文件访问这个光盘里面保存的软件仓库来下载软件)
关于网站和文件形式
可以内网搭建服务器做为软件仓库,也可以直接使用外网的第三方软件仓库
当从多个软件源中找到相同软件包时如何处理
如果软件源都是本地的,按照[](唯一标准符)中的首字母进行排序进行使用
如果软件源既有本地也有网络,则优先选择本地源
如果软件源是Http或FTP形式,选择网速最好的
配置本地yum源
将光盘挂载(将镜像文件挂载)
mkdir /media/cdrom 创建挂载点
mount /dev/cdrom /media/cdrom 配 置临时挂载
vim /etc/fstab 配置永久挂载
/dev/cdrom /media/cdrom iso9660 defaults 0 0
编写本地Yum文件(红帽)
cd /etc/yum.repos.d/ 目录下存放Yum源信息(Yum源文件以.repo结尾)
vim file.repo 配置名为file的Yum源(如果没有此文件,则创建此文件)
如果开启了校验,还需要配置公钥位置
gpgkey:公钥位置
为什么此处指定了两个本地Yum地址
因为在红帽5/6/7中只有一个目录保存着软件包,在红帽8中有2个目录保存着软件包分别时再/media/cdrom/BaseOS/Packages与/media/cdrom//AppStream/Packages
所以在配置软件仓库时也需要配置2个本地Yum源
编写本地Yum文件(CentOS)
CentOS需要注意默认的两个repo文件
CentOS-Base为网站源仓库(默认开启);CentOS-Media为本地源仓库(默认关闭)
当我们需要使用本地仓库源时,需要将Base的仓库源中的enabled设置为0
vim CentOS-Base.repo
vim CentOS-Media.repo 并将Media的仓库源中的enabled设置为1,并将baseurl的第二个文件路径改为光盘的挂载路径
通过yum安装软件
yum clean all 清理原有的软件仓库缓存
yum makecache 建立新的软件仓库缓存
yum repolist all 查看已经拥有的yum源以及其状态
yum -y install 软件包 安装指定软件包
-y 表示自动回答yes
yum list 查看软件仓库所有的安装包
yum info 软件包 查看软件包的详细信息
yum -y update 软件包 更新指定软件包
yum -y remove 软件包 卸载指定软件包
通过YUM下载的软件包存放路径
yum isntall --downloadonly --downloaddir=路径 软件包 只下载该软件包到指定目录,不进行安装(如果下载的包包含了任何没有满足的依赖关系,则yum会将所有的依赖关系包下载,但是都不会安装)
--downloadonly 只下载软件包,不安装
--downloaddir 指定下载软件包的存放路径
默认通过yum下载的软件包会保存在/var/cache/yum/x86_64目录下
特点
1、同时使用yum安装软件的问题:同一时间在一个系统里面,只可以有一个人发起一个进程来安装某个软件(如果同一时间有两个人使用Yum安装软件,第二个人会安装失败)
2、使用yum安装软件时可能会安装到不必要的东西(臃肿)
3、不必考虑依赖关系,适合初学者
通过dnf软件仓库安装
dnf就是个套了个壳子的yum,等同于yum v4版本(截止到2019年10月,yum的版本是v3)
dnf和yum的区别
作用上:解决了yum命令的诸多瓶颈问题(例如占用大量内存、臃肿的软件依赖关系、运行速度缓慢等)
命令上:与yum相比,只需要将日常的软件包管理操作的yum使用dnf代替就可
配置命令
dnf clean all 清空缓存
dnf makecache 建立缓存(下次安装软件速度更快)
dnf repolist all 查看已有软件仓库以及其撞他
dnf install 软件包 安装此软件
RPM软件包相关路径
镜像中存在的RPM软件包
mount /dev/cdrom /media/cdrom 将镜像挂载(存放在挂载目录下的Packages)
cd /media/cdrom/Packages 在该目录下可以查看到镜像里的rpm包,可以直接将这个rpm包进行安装
直接从网站下载RPM包
wget 地址 下载的RPM包会存放在当前目录下
通过yum从网站yum源下载的RPM软件包
保存在/var/cache/yum/x86_64目录下
RPM数据库
/var/lib/rpm中以__db开头的文件