博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux软件包管理
阅读量:5840 次
发布时间:2019-06-18

本文共 4066 字,大约阅读时间需要 13 分钟。

  hot3.png

linux 下软件包的安装

1. linux 下有那些方式安装软件包

  1. 使用 rpm 命令安装 官方或第三方 封装的rpm包
  2. 使用 yum 工具安装rpm 包.
  3. 编译安装 开源的软件源码包.

2. rpm包的安装和管理

2.1 rpm包命名

此处以httpd 包为例.

httpd   -2.4.6      -15   .el7.centos  .x86_64  .rpm软件名   软件版本 发布次数   系统平台     架构     包扩展名  # 常见架构x86:    i386, i486, i586, i686 x86_64: x64, x86_64, amd64

2.2 rpm包管理器

rpm 包是封装好的包, 多数的rpm包应当含有: 二进制文件, 库文件, 配置文件, 帮助文件 程序包管理器: 将编译好的应用程序打包成为一个或多个程序包. 包文件组成: RPM包内文件 元数据, 如名称, 版本, 依赖性, 描述 安装或卸载的脚本 数据库: /var/lib/rpm 程序包名称以及版本 依赖关系, 功能说明 包安装后生成的各种文件路径以及校验码

2.3 rpm包获取源方式

  1. 系统发行版的光盘 或光盘镜像
  2. 软件项目官网
  3. 第三方组织, EPEL
  4. rpm 搜索引擎
  5. 自己制作的

2.4 光盘内的RPM包

一般常用必备的软件官方都会有封装好的rpm包, 并收录在光盘. 所以我们这里先将centos的光盘挂载上, 然后从里面获取官方的 rpm包.

  • 光盘内软件都在 Pacakages 目录.

2.5 rpm 命令用法

  1. 概述 rpm 命令是RPM 软件包的管理工具, 是RedHatLinux 发行版本用来管理Linux 套件的程序, 遵循了GPL 规则, 且功能强大,

  2. 语法 rpm [OPTIONS] PACKAGE

  3. 选项

-a:         查询所有已安装的rpm包-c:         只列出组态配置文件, 需要结合 -l 使用-d:         只列出文本, 需要结合 -l 使用-e:         --erase:    删除指定的已安装包-f 
: 查询指定文件的安装包-h: --hash 安装包安装时显示标记-i: 显示相关软件包的信息-i
: --install 安装指定的软件包-l: 显示指定软件包的文件列表-p
: 查询指定的(未安装)软件包-q: 使用询问模式, 遇到问题时, 会先询问用户-R: 显示 依赖信息-s: 显示文件状态, 需要结合 -l 使用-U
: --upgrade 升级指定软件包-v: 显示指令执行过程-vv: 显示更加详细过程--test: 测试安装, 不真正执行安装--nodeps: 不检测依赖性--force: 强制安装--oldpackage: 降级--replacekgs: 已安装过的包 重装--replacefile: 其他已安装的rpm包的文件, 与现有文件冲突时 覆盖--nosignature: 不检查来源合法性--nodigest: 不执行程序脚本 %pre: 安装前脚本 --nopre %post: 安装后脚本 --nopost %preun: 卸载前脚本 --nopreun %postun:卸载后脚本 --nopostun

2.6 rpm命令的使用

  1. 这里测试使用rpm 命令安装 vsfptd, 先查看这个包的依赖 rpm -qRp PACKAGE

  1. 查看这个包的信息 rpm -qip PACKAGE

  1. 查看这个包的配置文件相关位置

  1. 安装

  1. 尝试启动vsftpd, 并查看

  1. 查看这个包 并 卸载 vsftpd

3. yum 工具

3.1 yum 是什么

yum 是RadHat, Fedora 以及 CentOS 中常用的前端软件包管理工具, 基于rpm 包管理, 能够冲指定服务器上下载PRM包并安装, 可以自动档处理依赖关系, 并且一次安装所有依赖包, 无需单独下载安装, yum 还可以查找, 删除 一个或一组软件包.

3.2 yum 工具用法

  1. 语法: yum [OPTIONS] [GREAM]

  2. 选项

-h:     显示帮助信息-y:     对多有提问回答yes-c:     指定配置文件-q:     安静模式-v:     显示详细信息-d:     设置调试等级(0-10)-e:     设置错误等级(0-10)-R:     设置yum 处理命令最大等待时间-C:     从缓存中运行, 不去下载新的头文件
  1. 参数
install:        安装 rpm包update:         更新rpm包check-update:   检查是否有 更新remove:         删除指定的rpm包list:           显示软件包信息search:         搜索软件包info:           显示指定rpm包的描述信息和概要clean:          清除yum 过期的缓存shell:          进入yum 的shell 提示符resolvedep:     显示指定rpm的依赖关系localinstall:   安装本地的 rpm包localupdate:    显示本地rpm 软件包进行更新deplist:        显示rpm 包的所有依赖关系
  1. 常用操作
#安装yum install             # 安装全部yum install PACKAGE     # 安装指定的 packageyum groupinstall GROUP1 # 安装程序组 group1# 更新yum update              # 更新所有包yum update PACKAGE      # 更新指定 rpm 包yum check-update        # 检查指定程序包yum groupupdate GROUP1  # 升级指定程序组# 查找显示yum info PACKAGE        # 显示安装包信息yum list                # 显示所有可用安装包yum list PACKAGE        # 显示指定安装包yum groupinfo GROUP1    # 显示相关组信息# 删除yum remove PACKAGE      # 删除指定的 包yum groupremove GROUP1  # 删除指定 程序包组yum deplist PACKAGE     # 查看程序依赖# 清除缓存yum clean package       # 清除缓存目录下的 软件包yum clean headers       # 清除目录下的 headersyum clean oldheader     # 清除旧的 headers缓存yum clean all           # 清除所有

3.2 yum 搭建本地仓库

  1. 挂载光盘

  1. 备份 yum配置文件, 并添加新的配置文件

文件内容:

  1. 清理缓存, 并统计软件数量

  1. 尝试使用 yum 安装 vsftpd

4. 源码包编译安装

1. 概述

  • 一般开源项目的源码包在项目的官网上都会提供下载地址, 如果非特殊原因不要再第三方下载源码包, 防止源码包被修改过.

  • 大多数开源项目的源码包都会提供 .tar.gz.tar.bz2 一类的压缩包.

2. 源码包的优劣势

  1. 优势

    • 源码包是开源的, 比RPM包更加自由, 可以选择自己想要的功能,
    • 所有东西(命令, 文档, 配置文件)的位置都可以自己定义
    • 卸载很方便
    • 稳定性更高
  2. 劣势

    • 源码包需要编译, 过程较为复杂, 容易出错,
    • 编译安装过程较为漫长
    • 依赖性问题更加复杂
    • 配置项较多, 手动拼写容易出错

4. 编译安装需要的工具

  • 其次需要用到 tar 以及 gzip, bzip2 等压缩打包工具, 用于解压源码包.
  • 编译安装首先需要, gcc 和 gcc-c++ 编译器, 用于编译源码.
  • 还需要用到 make 和 cmake 用于处理用于批处理,自动化编译所有源码包.

以上都是必须一些工具, 不同程序的 源码包, 还需要很多其他的工具以及库 等等.

5. 编译安装演示

这里我们演示下 httpd2.4 的源码包编译安装.

  1. 这里 http2.4 就需要用到 apr 和 apr-util 扩展, 所以都需要提前转呗准备好.

  1. 解压全部并进入httpd 目录内

  1. 可以查看 configure 有那些可选项 有 很多的选项

  1. 尝试安装

  • 这里报错显示没有找到 apr.
  • 查看指定apr 的选项, 再次尝试

  • 再次报错, 显示在 ./srclib 目录中没有找到 apr 和 apr-util, 这是我们将之前的apr 和 apr-util拷贝到目录中, 并去掉版本号, 这时候就没有问题了.

  • 配置完成 且没有出错 后就可编译安装了, 编译过程较为耗时.

  • 编译结束时, 检查上面信息是否有显示 error, 如果没有则一切正常. 就可以正常使用了
  1. 检查软件是否安装成功

  1. 尝试启动

-正常启动且可以获取数据.

END

转载于:https://my.oschina.net/nikoF/blog/2396240

你可能感兴趣的文章
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
PHP环境安装套件:快速安装LAMP环境
查看>>
CSS3
查看>>
ul下的li浮动,如何是ul有li的高度
查看>>
C++ primer plus
查看>>
python mysqlDB
查看>>
UVALive 3942 Remember the Word Tire+DP
查看>>
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
c_数据结构_队的实现
查看>>
jquery 选择器总结
查看>>
Qt设置背景图片
查看>>
【阿里云文档】常用文档整理
查看>>
java中的Volatile关键字
查看>>
前端自定义图标
查看>>
实验二
查看>>
独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>