linux软件包安装有几种方式?

目录 通过源代码编译安装 通过RPM软件包安装 RPM软件包 RPM数据库 通过yum软件仓库安装 配置本地yum源 通过yum安装软件 通过dnf软件仓库安装 RPM软件包相关路径 Linux安装方式主要有源码安装、单包安装、依赖包安装 安装方式 安装包格式 安装工具 适用的操作系统 安装软件包例子 源码安装 tar压缩包 解压缩工具tar 编译工具make和gcc

目录

通过源代码编译安装

通过RPM软件包安装

RPM软件包

RPM数据库

通过yum软件仓库安装

配置本地yum源

通过yum安装软件

通过dnf软件仓库安装

RPM软件包相关路径


Linux安装方式主要有源码安装、单包安装、依赖包安装 

安装方式安装包格式安装工具适用的操作系统安装软件包例子
源码安装tar压缩包解压缩工具tar
编译工具make和gcc
适用于所有的操作系统tar xvf 软件压缩包
进入到解压后的软件包
./configure、make、make install进行编译
单包安装rpm包rpm包管理器适用于RedHat/CentOS/openSUSE/Fedorarpm -ivh 软件包
deb包dkpg软件管理包适用于Debian/Ubuntusudodpkg -I 软件包
依赖包自动安装rpm包yum或dnf适用于RedHat/CentOS/Fedorayum/dnf install 软件包
YaST适用于openSUSEzypper in 软件包
deb包apt适用于Debian/Ubuntusudo 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开头的文件

知秋君
上一篇 2024-08-15 07:36
下一篇 2024-08-15 07:02

相关推荐