Linux--安装及管理程序

前言

在主机中安装了Linux操作系统之后,就具备了提供软件服务,网络服务等功能的基础。然而随着操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多功能时,安装新的应用程序就成为必然要面对的工作。

Linux应用程序基础

应用程序与系统命令的关系

  • 在Linux系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,我们可以通过以下描述来对两者进行区别。
角色 系统命令 应用程序
文件位置 一般在/bin和/sbin目录中, 或为Shell内部指令 通常在/usr/bin和/usr/sbin目录中
主要用途 完成对系统的基本管理工作,例如IP配置工具 完成相对独立的其他辅助任务, 例如网页浏览器
适用环境 一-般只在字符操作界面中运行 根据实际需要,有些程序可在图形界面中运行
运行格式 一一般包括命令字、 命令选项和命令参数 通常没有固定的执行格式

典型应用程序的目录结构

文件类型 保存目录
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
日志文件 /var/log
应用程序参考文档文件 /usr/share/doc
应用程序手册页文件 /usr/share/man

常见的软件包封装类型

文件类型 保存目录
RPM软件包 扩展名为".rpm"
DEB软件包 扩展名为".deb"
源代码软件包 一般为 “.tar.gz” 、".tar.bz2" 等格式的压缩包包含程序的原始代码
绿色免安装的软件包 软件包的扩展名不一-,以TarBall格式的居多在压缩包内提供已编译好的执行程序文件解开压缩包后的文件即可直接使用

RPM包管理工具

  • RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中公认的软件包管理标准。
  • RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装,卸载,升级的各种.rpm软件包进行了详细的记录,并能够自动分析软件包之间的依赖关系,保持各个应用程序在一个协调没有虚的整体环境中运行。
    • 由Red Hat公司提出,被众多L inux发行版所采
    • 建立统一的数据库文件
    • 详细记录软件包安装、卸载等变化信息
    • 自动分析软件包依赖关在这里插入图片描述

rpm命令的格式

  • 使用rpm命令的查询功能可以检查某个软件包是否已经安装,了解软件包的用途,软件包复制到系统中的文件等各种相关信息,以便更好地管理Linux系统中的应用程序。
    • rpm命令能够实现几乎所有对RPM软件包的管理功能
    • 执行"man rpm”命令可以获得关于rpm命令的详细帮助信息
  • rpm命令功能
    • 查询、验证RPM软件包的相关信息
    • 安装、升级、卸载RPM软件包
    • 维护RPM数据库信息等综合管理操作

查询已安装的RPM软件信息

rpm -q[子选项] [软件名]

常用选项

rpm -qa	查看系统中以RPM方式安装的所有软件列表
rpm -qi	软件包的详细信息(查看指定软件包的名称,版本,许可协议,用途等描述信息)
rpm -ql	软件包当中的所有文件,显示指定的软件包在当前系统中安装的所有目录,文件列表
rpm -qf	根据指定文件或目录查看是属于哪个软件包安装的
rpm -qc	查看软件包所有配置文件。如conf cnf ini 都是配置文件
rpm -qd	查看软件包的文档

参考实例
直接安装软件包:

[root@linuxcool ~]# rpm -ivh packge.rpm 

忽略报错,强制安装:

[root@linuxcool ~]# rpm --force -ivh package.rpm

列出所有安装过的包:

[root@linuxcool ~]# rpm -qa

查询rpm包中的文件安装的位置:

[root@linuxcool ~]# rpm -ql ls

卸载rpm包:

[root@linuxcool ~]# rpm -e package.rpm 

查询未安装的RPM软件包文件中信息

  • 使用“-qp”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包名称。
  • 命令都与“-q”类似
使用命令的基本格式
rpm -qp[子选项] RPM包文件
常用选项有以下几种
-qpi
-qpl
-qpc
-qpd

安装,升级,卸载RPM软件包

  • 使用rpm命令实现安装,升级,卸载软件包这些操作时,需要了解基本的命令选项。
-i	在当前系统中安装(Install)一个新的RPM软件
-e	卸载指定名称的软件包
-U	检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项
-F	检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装
–force	强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个比之前使用的软件版本更旧的软件时,可以使用此选项。
–nodeps	在安装或升级,卸载一个软件包时,不检查与其他软件包的依赖关系
-h	在安装或升级软件包的过程中,以#号显示安装进度
-v	显示软件安装过程中的详细信息
rpm -ivh	安装
rpm -evh	卸载
df -h	    查看挂载

安装,升级软件包

  • 使用rpm命令安装软件包时,需要指定完整的包文件名作为参数(可以有多个)
  • 而卸载软件包时,只需要指定软件名称即可。
  • 若要一次性安装多个RPM软件包,可以使用通配符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统会自动检查依赖性并决定安装顺序,而无需管理员去判断应该先装哪一个包。
  • 在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过程信息,及时跟踪安装进度。
  • 若是使用新版本的软件包替换旧版本的软件包,只需将“-i”替换成“-U”即可。
命令使用格式
rpm [选项] RPM包文件
常用选项有
-i
-U
-F

维护RPM数据库

  • 用于记录在Linux系统中安装,卸载,升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件,非法关机,病毒破坏等导致),且Linux系统无法自动完成修复时,当导致无法使用rpm命令正常的安装,卸载及查询软件包。
  • 这时候可以使用rpm命令的“–rebuilddb”或“–initdb”功能对RPM数据库进行重建。
例如
[root@localhost~]#rpm --rebuilddb
或者
[root@localhost~]#rpm --initdb

db的意思是数据库(database)
init的意思是初始化

yum命令 – 基于RPM的软件包管理器

  • yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
  • yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记

语法格式:yum [选项]

安装软件(以foo-x.x.x.rpm为例)
yum install foo-x.x.x.rpm

删除软件
yum remove foo-x.x.x.rpm
或者
yum erase foo-x.x.x.rpm

升级软件
yum upgrade foo
或者
yum update foo

查询信息
yum info foo

搜索软件(以包含foo字段为例)
yum search foo

显示软件包依赖关系
yum deplist foo

清空yum仓库缓存
yum clean all

猜你喜欢

转载自blog.csdn.net/CN_PanHao/article/details/106784684