软件管理

1.软件包介绍

开源软件最初只提供了.tar.gz的打包的源码文件,用户必须自己编译每个想在GUN/Linux上运行的软件。用户急需系统能提供一种更加便利的方法来管理这些软件,当Debian诞生时,这样一个管理工具dpkg也就应运而生,可用来管理deb后缀的“包”文件。从而著名的“package”概念第一次出现在GUN/Linux系统中,稍后Red Hat才开发自己的rpm包管理系统

rpm -q autofs || yum -y install autofs
systemctl enable --now autofs
     ubuntu
apt install autofs -y
vim /etc/auto.master
/misc    /etc/auto.master
systemctl restart autofs
神奇的光盘挂载目录

2.程序包管理器

将编译好的应用程序的各组成文件打包一个或几个程序包文件,利用包管理器 可以方便地快捷地实现程序包的安装,卸载,查询,升级和校验等操作管理

Redhat:rpm文件,rpm包管理器

debian:deb文件,dpkg包管理器

3.包的分类

application-version-arch.rpm:主包

application-devel-version-arch.rpm:开发子包

application-utils-version-arch.rpm 其它子包

application-libs-version-arch.rpm 其他子包

4.包的依赖

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包安装软件包时,会因为缺少依赖的包,而导致安装包失败

解决依赖包管理工具:

yum:rpm包管理器的前端工具

dnf:Centos8版替代yum

apt:deb包管理器前端工具

zypper:suse上的rpm前端管理工具

5.程序包管理器相关文件

包文件组成

包内的文件

元数据,如:包的名称,版本,依赖性,描述等

可能有包安装或卸载时运行的脚本

数据库:/var/lib/rpm

程序包名称 及版本

依赖关系

功能说明

包安装后生成的各文件路径及校验码信息

6.rpm包管理器

rpm -ivh 显示过程安装

  -qa 查询所有安装过的包可以接‘通配符’

 -q 查询

-ql 查看指定的程序包安装后生成的所有文件

-qc 查询程序配置文件

-qd 查询程序的文档

-qi 信息

-qf 查看指定文件由那个程序安装包生成,接文件

-e 包卸载 --nodeps强制

7.yum和dnf

Centos使用yum,dnf解决rpm的包依赖关系

yum 服务器存放rpm包和相关包的元数据库

yum 客户端访问yum服务器进行安装或查询等

先在yum服务器上创建yum 仓库,在仓库中事先存储了众多rpm包,以及包的相关元数据文件放置在repodata下,当yum客户端利用yum/dnf工具进行安装时包时,会下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下安装

8.yum客户端配置

/etc/yum.conf 为所有仓库提供公共配置

/etc/yum.repos.d/*.repo 为每个仓库的提供配置文件

文件名结尾格式必须是.repo

[local]
name = local cdrom packages
baseurl = file:///opt
enabled = 1
gpgcheck = 0
file://本地路径 http://互联网 ftp://共享文件夹
enabled=1启用仓库,=0禁用仓库

# 启用updates仓库
[root@centos7 ~]#yum-config-manager --enable updates

# 禁止使用updates仓库
[root@centos7 ~]#yum-config-manager --disable updates

本质还是在修改配置文件: enabled 0 | 1

gpgcheck=1对rpm包进行检验=0不检验

9.yum命令

大部分查询命令都支持通配符

yum repolist显示仓库列表

 yum provides 查询看指定的特性(可以使某文件)是由那个程序包所提供

yum install 安装程序包

yum remove 卸载程序包

yum list 显示程序包

yum info 查看程序包信息

yum update 升级,后面接程序

yum history 查看安装日志

yum history undo N 回滚

yum history redo N 重做

yum clean all 清楚缓存

yum makecache 生成缓存

10.实现私用yum仓库

下载所有yum仓库的相关包和meta数据

dnf reposync --repoid=REPOID --download-metadata -p /path
默认只下载rpm包,不下载meta数据,需要制定--download-metadata 才能下载meta
reposync --repoid=REPOID --download-metadata -p /path
centos 7以前版本,reposync工具来自于yum-utils包

仓库服务器配置

[19:36:35 root@centos7 ~]$yum -y install httpd
[19:37:56 root@centos7 ~]$systemctl enable --now httpd
[19:38:07 root@centos7 ~]$mkdir -pv /var/www/html/centos/8
[19:39:43 root@centos7 ~]$mount /dev/sr0 /mnt/
[19:40:38 root@centos7 ~]$cp -a /mnt/* /var/www/html/centos/8
注意关闭selinux和防火墙

yum客户端配置

[21:43:36 root@centos7 yum.repos.d]$cat test.repo 
[Packages]
name=Packages
baseurl=http://10.0.0.7/centos/8
gpgcheck=0
enable=1

下载阿里云的extras源,制作私有yum源

[22:07:23 root@centos7 ~]$reposync --repoid=extras --download-metadata -p /var/www/html/centos/
[22:07:23 root@centos7 ~]$cat /etc/yum.repos.d/extras.repo 
[extras]
name=extras
baseurl=http://http://10.0.0.7/centos
gpgkey=0
[22:09:19 root@centos7 ~]$yum repolist
extras/7/x86_64                                       CentOS-7 - Extras                                           448

 11.编译安装httpd

[11:32:37 root@centos7 ~]$yum install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config
安装前关闭防火墙和selinux,安装相关包
[09:51:38 root@centos7 ]$wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.46.tar.bz2
[09:53:39 root@centos7 ]$tar xf httpd-2.4.46.tar.bz2 -C /usr/local/src
下载并解压缩包
[11:28:35 root@centos7 ~]$cd /usr/local/src/httpd-2.4.43/
[11:28:35 root@centos7 ~]$./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
配置
[11:32:37 root@centos7 ~]$make -j 4 && make install
编译并安装
[11:32:37 root@centos7 ~]$echo 'PATH=/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
[11:32:37 root@centos7 ~]$. /etc/profile.d/httpd.sh
配置环境
[11:32:37 root@centos7 ~]$apachectl start
运行
[11:32:37 root@centos7 ~]$useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache
[11:32:37 root@centos7 ~]$vim /etc/httpd/httpd.conf
user apache
group apache
指定用户Apache用户运行
[11:32:37 root@centos7 ~]$apachectl restart
配置生效和校验
[11:32:37 root@centos7 ~]$ps aux
查看进程

12.ubuntu

dpkg包管理器相当于centos里rpm包

dpkg -i 安装包

dpkg -l 列出当前已安装的包,类似rpm -qa

dpkg -l package 显示该包的简要说明

dpkg -s package 列出该包的状态,包括详细信息,类似rpm -qi

dpkg -L package 列出该包所包含的文件,类似rpm -ql

dpkg -S <pattern> 搜索包含pattern的包,类似rpm -qf

dpkg -P package 删除包(包括配置文件)

apt list 列出包含条件的包(已安装,可升级等)

apt install tree 安装包

apt remove tree 删除包

apt autoremove Apache2 删除安装包并解决依赖关系

APT包索引配置文件

/etc/apt/sources.list

apt update 升级包

原文地址:https://www.cnblogs.com/aiyoubucuo/p/14148891.html