1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux软件包管理(安装 升级 卸载软件包 管理软件源)

Linux软件包管理(安装 升级 卸载软件包 管理软件源)

时间:2019-02-24 03:15:37

相关推荐

Linux软件包管理(安装 升级 卸载软件包 管理软件源)

文章目录

Linux软件包分为二进制包和源码包源码包优点缺点安装过程 二进制包优点缺点依赖性安装方法RPMRPM包获取方法RPM包格式RPM安装RPM查询RPM升级RPM卸载软件验证 YUM优点YUM的安装YUM的配置文件默认的CentOSYUM源YUM命令的使用自己搭建一个yum仓库国内的yum源

Linux软件包分为二进制包和源码包

源码包是程序的源代码文件的集合,可以被编译成可执行的程序。这种包需要用户手动编译安装,可以根据需要进行自定义配置,适合有编程经验的用户或需要进行深度定制的使用者。

二进制包是已经编译好的可执行程序,用户可以直接安装和使用,不需要进行编译。这种包适合大多数用户使用,因为它们可以直接安装并立即使用,而不需要任何编译或配置。

源码包

源码包是Linux中软件包的另一种形式,需要在计算机上进行编译以后才可以产生可以直接运行的二进制程序。源代码包里面包括了程序的程序代码,一般就是我们能认识的C语言文件,因此在安装源码包的时候通常会检索系统中是否正确安装gcc编译器,并且源代码安装的时间会比较长

优点缺点

优点

自由度高:源码包的使用可以根据个人需求和系统环境进行自由定制和编译,更好地满足个人需求和特殊应用需求。

灵活性强:源码包安装的灵活性可以更好地适应不同的系统环境和应用场景。

安全性高:源码包没有二进制文件,可以避免一些恶意软件的风险。

可靠性高:源码包的更新和维护通常由软件的作者或社区来完成,可以更好地保证软件的质量和稳定性。

缺点

安装过程繁琐:源码包需要用户自己下载、编译、安装,整个过程较为繁琐,对用户的技术要求较高。

编译时间长:由于源码包需要编译生成可执行文件和依赖库等文件,编译时间较长,特别是在低配置的计算机上。

可能存在依赖问题:源码包安装过程中需要满足各种依赖关系,一旦依赖关系出现问题,将可能导致安装失败或软件无法正常 工作

安装过程

下载源码包:可以从软件的官方网站或者开源代码库中下载源码包,通常是以.tar.gz、.tar.bz2、zip等格式压缩的文件。

解压源码包:使用tar命令解压源码包,例如:tar -zxvf package.tar.gz。

配置环境:源码包的安装需要满足各种依赖关系,可以使用./configure命令查看系统环境的配置情况,并对源码包进行配置。

编译:使用make命令编译源码包,可以使用make命令的参数来指定编译选项,例如:make。

安装:使用make install命令将编译生成的文件复制到系统路径中,完成软件的安装,例如:make install。

验证:启动安装好的软件,并进行验证,确保软件能够正常工作。

源码包的安装过程相对于软件包管理系统来说较为繁琐,但可以根据个人需求和系统环境进行自由定制和编译,更好地满足个人需求和特殊应用需求。

二进制包

二进制包,也就是源码包经过成功编译之后产生的包,可以马上运行的程序软件包,类似与Windows系统的exe文件。

优点缺点

优点:安装过程简单快速

缺点:没办法查看源代码,选择功能不灵活,有依赖性

依赖性
树形依赖:若安装a,则需要提前安装b,安装b需要提前安装c

​ 安装方法:安装c → 安装b → 安装a

环形依赖:若安装a,则需要提前安装b,安装b需要提前安装c,安装c需要提前安装a

​ 安装方法:abc一块安装

模型依赖:安装a时缺少某些文件

​ 通过官网:/

结合自己所使用的系统版本可以查询缺少的文件属包的名称

安装方法

yum安装或rpm安装

rpm安装手动进行安装,自己解决包之间的依赖性

yum安装会自动判断依赖关系

RPM

在linux中,rpm全称“Red Hat Package Manager”,中文意思为“Red Hat软件包管理”,即Red Hat贡献出来的软件包管理工具;它是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中

RPM包获取方法
各种网站,例如/,,/系统光盘
RPM包格式

[root@localhost home]# lsunzip-6.0-21.el7.x86_64.rpmunzip 软件名6.0版本号21修订次数e17操作系统版本x86_64 64位的操作系统rpmrpm包

RPM安装

rpm -ivh 软件包名-i 安装-v 显示详细信息-h 显示安装进度rpm -ivh 软件包名 --force--force 将安装过的软件重新安装一遍,一般用于个别配置文件丢失rpm -ivh 软件包名 --test--test 不真正安装,只是判断下是否能安装

RPM查询

rpm -qa 软件包名查询已安装的软件包

rpm -qa |grep abc查询软件包中含有abc的软件包

rpm -qi 软件包名查询此软件的详细信息

rpm -qip 软件包名查询未安装的软件包信息

rpm -ql 软件包名查询已安装的软件中含的文件及文件的目录

rpm -qlp 软件包名查询未安装的软件中包含的文件及文件的目录

rpm -qf 文件名查询文件属于哪个RPM安装包(必须是RPM安装包里的文件)

[root@localhost home]# rpm -qarubygem-bigdecimal-1.2.0-36.el7.x86_64firewalld-filesystem-0.6.3-11.el7.noarch........[root@localhost ~]# rpm -qa |grep unzipunzip-6.0-21.el7.x86_64[root@localhost ~]# rpm -qi unzip Name : unzipVersion: 6.0Release: 21.el7Architecture: x86_64......[root@localhost Packages]# rpm -qip zsh-5.0.2-34.el7_8.2.x86_64.rpm Name : zshVersion: 5.0.2Release: 34.el7_8.2Architecture: x86_64......[root@localhost Packages]# rpm -ql unzip /usr/bin/funzip/usr/bin/unzip/usr/bin/unzipsfx/usr/bin/zipgrep......[root@localhost Packages]# rpm -qlp zsh-5.0.2-34.el7_8.2.x86_64.rpm /bin/zsh/etc/skel/.zshrc/etc/zlogin/etc/zlogout......[root@localhost]~# rpm -qf /usr/bin/funzip unzip-6.0-21.el7.x86_64

RPM升级

rpm -Fvh 软件包名升级安装(安装过旧版本才会升级到新版本,如果没有安装过,就不会进行安装)

rpm -Uvh 软件包名升级安装(安装过旧版本才会升级到新版本,如果没有安装过,就直接安装)

-U:升级软件,若未软件尚未安装,则安装软件-F:升级软件[root@localhost]/home# rpm -Fvh unzip-6.0-21.el7.x86_64.rpm [root@localhost]/home# rpm -Uvh unzip-6.0-21.el7.x86_64.rpmf4a80eb5: NOKEY准备中...################################# [100%]软件包 unzip-6.0-21.el7.x86_64 已经安装

RPM卸载软件

rpm -e 软件包名

rpm -e 软件包名 --nodeps不检测依赖性,直接强制卸载

验证

rpm -V 已安装的软件名 校验指定的软件包中的文件

rpm -Vf 系统文件名 校验某个系统文件是否被修改

.表示所验证属性一致;

S表示文件大小被修改

M表示文件的类型或者权限被修改

5表示文件内容被修改

D表示设备的主副码被修改

L表示路径被修改

G表示所属组被修改

T表示文件修改时间被改变

YUM

yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum

使用YUM进行RPM包的管理,非常简单方便

优点

方便,只要一条命令,剩下你什么都不用做了,自己帮你判断依赖安装

快,只要源网络好,你的网络也快,那么安装是很快的时间,不会像源码安装那样久。

升级方便

YUM的安装

Centos默认安装了yum,不需要另外安装

YUM的配置文件

主要配置文件:/etc/yum.conf

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的

[main] # main 仓库,[]表示定义仓库的名称是什么cachedir=/var/cache/yum/$basearch/$releasever# RPM包的缓存位置keepcache=0# RPM包在本地是否需要长期保存debuglevel=2 # 日志级别 范围为0-10logfile=/var/log/yum.log # 日志文件exactarch=1# 下载的RPM包是否需要与本地平台完全匹配obsoletes=1# 允许更新陈旧的RPM包gpgcheck=1# 校验rpm包的来源是否有效和安全plugins=1installonly_limit=5bugtracker_url=/set_project.php?project_id=23&ref=/bug_report_page.php?category=yumdistroverpkg=centos-release

默认的CentOSYUM源

/etc/yum.repos.d/xxxx.repo

CentOS自带的这些配置文件中,其实只有CentOS-Base.repo文件有效。按照需求,这些文件可以删除,或改名,或自己建立一个.repo的配置文件。实际使用中,可以参考CentOS-Base.repo的配置自定义.repo文件。

查看CentOS-Base.repo配置文件

CentOS-Base.repo配置文件参数说明

[ ... ]:仓库的名称,不能重复。name:对仓库的描述,该项必须有。baseurl:配置仓库的路径,用于指定一个url。mirrorlist:指向一个镜像列表,里面有多个url。enabled:是否启用当前仓库,值为1或0,默认为1。gpgcheck:是否校验rpm包的来源是否有效和安全,值为1或0,默认为1。gpgkey:验证RPM包的密钥文件路径,该文件可以在远处服务器上,也可以在本地。cost:代价,其本质是仓库优先级的配置,值越低,表示访问的代价越低,也即优先使用

注意:配置文件中的"="号的前后不能有空格。

YUM命令的使用

语法

yum [options] [subcommand] [package ...]

yum 选项 子命令 软件包

yum显示信息

yum list installed# 只显示已安装的包yum list available# 只显示没有安装,但可以安装的软件包yum list updates # 查看所有可更新的包yum list extras # 显示不属于任何仓库的,额外的包yum list obsoletes# 显示废弃的包yum list recent # 新添加进yum仓库的包yum list # 显示以及安装和未安装的软件包yum list 软件包名 # 显示软件包信息仓库yum repolist # 查看当前能够使用的yum仓库yum repolist all # 查看所有的yum仓库yum repolist enabled # 显示启用的仓库yum repolist disabled # 显示禁用的仓库包管理yum info 软件包名 # 显示软件包的详细信息yum groupinfo <group_name> # 显示软件组group信息

yum搜索 查询

yum search mysql # 查询软件包中带有mysql的软件包yum deplist <package_name> # 仅仅 查看程序rpm依赖情况查询某个文件是由哪个软件包的yum provides 文件yum whatprovides 文件

yum清空缓存

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

命令格式:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

手动在本地建立缓存

yum makecache

安装应用程序

yum install -y 软件包1 ...软件包n #安装软件包-y 表示安装过程中如果让你做出选择 yes/no 自动选择yes

注:若安装(卸载,升级)多个包,则使用包名之间使用空格隔开

重新安装软件包yum reinstall -y 包1 ....包n 升级软件包yum update 包1...包nyum update-to 包-版本号# 指定版本号检测可以升级的包yum check-update 卸载软件包yum remove 包1...包n注意:若该包被依赖,则该卸载可能会导致一些问题,如A依赖B,若卸载B,则A也会被卸载本地安装升级RPM包yum install rpm包路径 yum update rpm包路径

安装包组yum groupinstall -y 包组1...包组n 卸载包组 yum groupremove -y 包组1...包组n

查看此前安装卸载等操作历史

命令:yum history

自己搭建一个yum仓库

yum仓库又称为yum源,yum仓库一般会支持ftp协议(ftp://),http协议(http://),文件协议(file://)

先把默认的repo文件给移走

[root@localhost ~]# mv /etc/yum.repos.d/* /media/

挂在Centos镜像文件

[root@localhost ~]# mount -o loop CentOS-7-x86_64-DVD-.iso /mnt/mount: /dev/loop0 写保护,将以只读方式挂载[root@localhost ~]# cp -rvf /mnt/* /opt/centos/

编写repo配置文件

配置完成后需要清空yum缓存yum clean all # 清空yum缓存yum repolist# 查看当前的可用的yum仓库

国内的yum源

阿里云yum镜像仓库

安装

首先把默认的yum源移走

mv /etc/yum.repos.d/* /media

下载对应的repo文件

wget -O /etc/yum.repos.d/aliyun.repo /repo/Centos-7.repo# 下载阿里云的镜像并重命名

清除缓存yum缓存

yum clean all

将服务器上的软件包信息,本地缓存

yum makecache

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。