datetime:2022-01-08 14:34:00
author:nzb

Linux软件包管理

软件包管理简介

  • 软件包分类:

    • 源码包:包括脚本安装包

    • 二进制包:RPM包,系统默认包(ubuntu中是deb包),源码包编译后的包

    • 源码包的优点

      • 开源

      • 可以自由选择所需的功能

      • 软件是便宜安装,所以更加是个自己的系统,更加稳定也效率更高

      • 卸载方便(直接把目录删除)

    • 源码包的缺点

      • 安装步骤多

      • 编译并安装时间过长

      • 因为是编译安装,安装过程中一旦报错新手很难解决

    • RPM包优点

      • 包管理系统简单,只需要几个命令就可以实现软件包的安装,升级,查询和卸载

      • 安装速度比源码包快很多

    • RPM包缺点

      • 不能看见原代码

      • 功能选择不如源码包灵活

      • 依赖性

RPM包管理

rpm命令管理

  • RPM包名和包全名

  • RPM包的依赖性:树形依赖,环形依赖,模块依赖(以.iso.数组结束的就是模块依赖,也叫库文件依赖模块依赖查询网站)

  • 安装和升级使用包全名,卸载和查询使用包名(在/var/lib/rpm/中的数据库总搜索)

  • RPM安装:rpm -ivh 包全名

    • -i(install):安装

    • -v(verbose):显示详细信息

    • -h(hash):显示进度

    • --nodeps:不检测依赖性(该选项不用)

  • RPM升级:rpm -Uvh 包全名

    • -U(upgrade):升级
  • RPM卸载:rpm -e 包名,也要考虑依赖性,当有包被依赖时,此时这个包不能删掉

    • -e(erase):卸载
  • RPM查询包:查询包还是用RPM,yum没有查询功能

    • 查询包是否安装:rpm -q 包名

      -q(query)

    • 查询所有安装的包:rpm -qa

      -a(all)

    • RPM查询包详细信息:rpm -qi 包名

      -i(information)

    • RPM查询未安装包的详细信息:rpm -qip 包全名

      -p(package)

    • RPM查询文件安装位置:rpm -ql 包名

      -l(list)

    • RPM查询未安装包的文件安装的默认位置:rpm -qlp 包名

    • RPM查询系统文件属于哪个rpm包:rpm -qf 系统文件名

      -f(file)

    • RPM查询软件包的依赖性:rpm -qR 包名

      -R(requires)

    • RPM查询未安装软件包的依赖性:rpm -qRp 包全名

    • RPM包校验:rpm -V 包名

      -V(verify)

  • RPM包中文件提取(用来修复系统):

    • rpm2cpio 包全名 | cpio -idv . 包中的文件绝对路径

      • -i(copy-in模式):还原

      • -d:还原时自动新建目录

      • -v:显示还原过程

yum在线管理

  • 既可以用在线yum源文件服务器,也可以用本地光盘作为yum源文件服务器。

  • 会自动解决依赖性问题

  • 更换yum源:保存在/etc/yum.repos.d/目录下

  • 查询:yum list

  • 搜索:yum search 包名

  • 安装:yum -y install 包名

    -y(yes)

  • 升级:yum -y update 包名

    yum -y update:不写包名,直接升级全部(包括Linux内核,远程升级了的话不能开机,需要本地配置文件),慎用

  • 卸载,会卸载所有依赖的包:yum -y remove 包名

    • Linux服务器应该采用最小化安装的原则,用什么装什么

    • 装完了最好不要用yum卸载,也不要随便升级

  • yum的软件组管理:

    • 查询所有可用的软件组列表:yum grouplist

    • 安装指定软件组:yum groupinstall 软件包组名

    • 卸载指定软件组:yum groupremove 软件包组名

用光盘做yum源:修改/etc/yum.repos.d/下的media配置文件,该源为关盘挂载点,注意:配置文件的格式要求很严格,注释应该顶头写。

源码包管理

  • 区别:

    • 安装前的区别:概念上的区别,见上述

    • 安装后的区别:安装位置的区别

  • RPM包(一个软件)的默认安装位置:

    • /etc/:配置文件

    • /usr/bin/:可执行的命令

    • /usr/lib/:程序所使用的函数库

    • /usr/share/doc/:基本的软件使用手册

    • /usr/share/man/:版主文档

    • /var/www/html/:服务器类软件的默认网页位置

  • 源码包的安装位置:

    • 需要手动指定安装目录:一般推荐/usr/local/软件名/
  • RPM包和源码包安装软件带来的影响:启动服务的方式不同

    • RPM包在/etc/rc.d/init.d/下有执行文件,采用两种方式启动:

      • /etc/rc.d/init.d/httpd start

      • service httpd start

    • 源码包的服务启动方式不能用系统服务管理命令例如service来管理

      • 只能在/usr/local/软件名/bin/执行软件码 start 目录下启动服务
  • Apache源码包的具体安装步骤:

  • 安装C语言编译器:gcc

  • 下载apache的源码包:path

  • 确认源码保存位置/usr/local/src/

  • 确认软件安装位置:/usr/local/

  • 如何确认安装过程报错安装过程停止并出现error,warning,no等提示语言

  • 解压缩下载的源码包:tar -zxvf 源码包名

  • 进入解压缩目录:INSTALL和README时安装说明和使用说明

  • 执行./configure --prefix=默认安装目录:编译前准备

    • 定义需要的功能选项

    • 检测系统环境是否符合安装要求

    • 把定义好的的功能选项和检测系统环境的信息都写入Makefile文件(./configure过程会生成),用于后续的编译

  • 执行make:编译

  • 如果前两步报错,执行make clean,清空过程中生成的临时文件。

  • 执行make install:安装

  • 删除源码包安装的软件:直接rm -rf /usr/local/软件名/

脚本安装包与软件包管理

  • 脚本安装包不是独立的软件包类型,常见安装的是源码包

  • 人为包安装过程写成额自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装

  • 非常类似于windows下软件的安装方式

  • Webmin是一个基于Web的Linux系统管理界面,可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务。下载软件,下载后解压缩,并进入解压缩目录,执行.sh安装脚本,最后登录ip地址的自己配置的端口号进入该网站即可

如何选择包安装?

  • 如果对外服务,选择源码包安装,例如:Apache

  • 如果本机使用,RPM包安装,例如:gcc编译器

results matching ""

    No results matching ""