Linux第六章 软件包管理

Linux第六章 软件包管理

文章目录

  • [Linux第六章 软件包管理](#Linux第六章 软件包管理)

简介

windows中的软件包都不能直接在linux中安装使用.

  • 软件包分类

源码包 :

源代码开源, 绝大多数使用C语言编写.

比如 : 脚本安装包

二进制包 :

rpm包和系统默认包, 源代码编译成二进制的包, 省略了编译过程, 节约安装时间, 但是不能看到源代码.

比如 : 镜像文件里的包

rpm包管理 - rpm命令管理

rpm包都存放在挂载目录下的packages目录下

  1. 包和依赖性
  • rpm包命令规则

rpm包全名 : httpd-2.4.6-40.el7.centos.x86_64.rpm

httpd 软件包名
2.4.6 软件版本
40 软件发布的次数
el7.centos 适合的linux平台
x86_64 适合的硬件平台
rpm rpm包扩展名

rpm包扩展名都应以rpm结尾, 以便管理员识别.

  • rpm包依赖性

a -> b -> c

装c依赖b, 装b依赖a.

  1. 安装
  • 包全名和包名

包全名 : 操作的包是没有安装的软件包时, 使用包全名, 而且要注意路径
包名 : 操作已经安装的软件包时, 使用包名. 是搜索/var/lib/rpm中的数据库.

  • rpm安装

rpm -ivh 包全名

参数 :

markdown 复制代码
-i : 安装
-v : 显示详细信息
-h : 显示进度
--nodeps : 不检测依赖性
  • rpm包升级

rpm -Uvh 包全名

-U : 升级

  • 卸载

rpm -e 包名

  1. 查询
  • 查询是否安装

rpm -q 包名

markdown 复制代码
-q : 查询
-a : 所有
-i : 信息
-l : 列表( 安装位置 )
-f : 系统文件属于哪个软件包
-R : 软件包的依赖性
  1. 校验

rpm -V 已安装的包名

8个信息是否改变

S 文件大小是否改变
M 文件类型或权限是否改变
5 文件MD5校验和 ( 文件内容 )是否改变
D 设备的中,从代码
L 文件路径
U 文件的所有者
G 文件的所属组
T 文件的修改时间

文件类型

c 配置文件
d 普通文档
g 很少见
l 授权文件
r 描述文件

rpm包管理 - yum在线管理

yum可以解决rpm安装时软件包的依赖性问题.
red hat 公司yum是要收费的, 而centos是免费的.
yum和rpm都是管理的rpm包. rpm是手动管理, yum是自动管理.

  1. IP地址配置和网络yum源
  • IP地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33

配置

markdown 复制代码
{
    IPADDR=
    GATEWAY=
    NETMASK=
    DNS=
    ONBOOT=yes
}

重启

systemctl restart network

  • 网络yum源

默认网络yum源是配置好的, 只要网络是通的, 就可以使用.
vi /etc/yum.repos.d/CentOS-Base.repo

[base] 软件池( 容器 )名称, 一定要放[]中
name 软件池说明, 可随便写
mirrorlist 镜像站点
baseurl yum源服务器的地址
enabled 为1则容器生效, 0为不生效
gpgcheck 数字证书验证, 1为验证, 0为不验证
gpgkey 数字证书的保存位置
  1. yum命令

yum只输入包名即可, 无需输入包全名, 因为yum是自动到服务器上搜索软件包的.

  • 查询

yum list

查询所有可用软件包列表

yum search httpd

搜索服务器上所有和httpd相关的包

  • 安装

yum install -y 包名

-y : 自动回答yes

  • 升级

yum update -y包名

yum update -y : 升级所有软件包, 包括内核, 所以慎用.

  • 卸载

yum remove -y 包名

yum卸载会连同依赖包一起卸载, 有的依赖包被linux系统本身依赖, 卸载后系统会出错, 所以尽量不要使用yum卸载, 最好使用rpm来手动卸载.

  1. 本地yum源

网络yum源是在网上下载的, 下载慢.
本地yum源不需上网, 它是用的镜像当中的rpm包来进行下载的, 安装快, 但是版本不是最新的.

  • 挂载镜像

挂载镜像后, 镜像文件会放在挂载点, 供本地yum源使用.
mount /dev/sr0 /opt/centos

  • 让网络yum源失效

cd /etc/yum.repos.d
mkdir bak
mv C* bak
将网络yum源文件移动到bak目录中, 使其失效.

  • 创建新的yum源文件

yum源文件扩展名必须为.repo
vi local.repo

markdown 复制代码
{
    [centos]
    name=centos
    baseurl=file:///opt/centos    :    镜像的挂载地址
    enabled=1
    gpgcheck=0
}
  • 清空yum缓存

yum clean all

  • 列出仓库配置

yum repolist

源码包管理

  1. 源码包和rpm包的区别
  • 安装前

概念上 : rpm包安装快, 源码包安装慢, 能看到源代码.

  • 安装后

安装位置 : rpm是安装在系统默认位置, 源码包是手动指定的.

  • rpm包安装位置
/etc 配置文件安装目录
/usr/bin 可执行命令
/usr/lib 函数库
/usr/share/doc 软件使用手册
/usr/share/man 帮助文件
  • 源码包安装位置

一般安装在/usr/local/软件名/ 目录下.

  • 安装位置不同带来的影响

rpm包安装的httpd的启动方法:

markdown 复制代码
{
    /etc/rc.d/init.d/httpd start    :    通过绝对路径
    service httpd start    :    通过service命令
}

service命令是通过在rpm包默认的安装路径中搜索服务, 源码包的安装位置不固定, 所以它是不能管理源码包的.

service类似的服务管理命令只能管理rpm包安装的服务.

源码包安装的服务的启动方法:

只能使用绝对路径

  1. 源码包安装过程
  • 安装C语言编译器 -> gcc

yum install -y gcc

  • 下载源码包

httpd-2.4.9.tar.gz

  • 注意事项

源代码保存位置 : /usr/local/src
软件安装位置 : /usr/local
确认安装过程报错 : 安装过程停止, 并出现错误提示.

  • 安装过程

\1. 上传源码包

编辑

点击CRT上的secureFX, 将在windows中下载好的httpd压缩包拖拽到linux中.

\2. 解压源码包

tar -zxvf httpd-2.4.9.tar.gz

\3. 进入解压目录

cd httpd-2.4.9/

markdown 复制代码
{
    后续操作都应该在本目录中进行, 否则系统找不到文件.
    
    该目录下有两个大写的说明文件, 每个源码包都有类似的文件.
    {
        INSTALL    :    安装说明
        README   :    使用说明
    }
}

INSTALL

markdown 复制代码
{
    $ ./configure --prefix=PREFIX
    {
        定义安装位置;
        检测系统是否符合安装要求( 是否安装gcc );
        将前两项写入Makefile文件, 用于后续的编辑;
    }
    $ make
        编译, 调用gcc, 将源代码编译成二进制码;
    $ make install
        编译安装;
    $ PREFIX/bin/apachectl start
        启动;
}

\4. ./configure

markdown 复制代码
./configure --prefix=/usr/local/apache2.4

apache2.4版本的会出现关于apr的报错, 解决方案如下:

本方案转载至博客园中用户[yzkwork](https://home.cnblogs.com/u/yuzhaokai0523/) 的博客 : 解决apr报错

\5. make

markdown 复制代码
make

如果报错, 执行make clean清除make形成的临时文件.

\6. make install

markdown 复制代码
make install

执行之后会将数据写入/usr/local/apache2.4目录

\7. PREFIX/bin/apachectl start

markdown 复制代码
/usr/local/apache2.4/bin/apachectl start

启动服务

  • 卸载

无卸载命令, 直接删除安装目录即可, 不会遗留任何垃圾文件.

脚本安装包

并不是独立的软件包类型, 常见的安装的是源码包.
人为把安装过程写成了自动安装的脚本, 只要执行脚本, 定义简单的参数, 就可以完成安装.
非常类似于windows下软件的安装方式.

相关推荐
小技与小术1 小时前
lvs-nat模式实验详解
linux·运维·服务器·网络·lvs
FreeBuf_1 小时前
SSHamble:一款针对SSH技术安全的研究与分析工具
运维·安全·ssh
繁依Fanyi1 小时前
828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
服务器·开发语言·前端·python·算法·华为·华为云
py.鸽鸽2 小时前
Linux2-mkdir,touch,cat,more
linux
aabbcc456aa2 小时前
ubuntu安装mysql 8.0忘记root初始密码,如何重新修改密码
linux·mysql·ubuntu
张太行_2 小时前
Linux 调用write()函数后,内核一般多久将数据写入磁盘
linux·运维
Flying_Fish_roe2 小时前
linux-网络管理-防火墙配置
linux·运维·服务器
杰瑞的猫^_^2 小时前
【Linux】线程&锁&条件变量&信号量&生产消费者模型&线程池
linux·线程池·条件变量·互斥锁·信号量·生产消费者模型
编织幻境的妖2 小时前
运维面试题-2
运维
只对您心动3 小时前
【QT】实现TCP服务器,客户端之间的通信
linux·服务器·c语言·开发语言·c++·qt·tcp/ip