zoukankan      html  css  js  c++  java
  • 软件管理

    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 升级包

  • 相关阅读:
    Linux命令选项及参数解析 getopt() getopt_long() 函数
    找不到文件或程序集名称“DreamweaverCtrls”的解决方法
    #include file 与#include virtual的区别
    用dw(dreamweaver)开发asp.net,连接数据库时出现“http错误500,服务器内部错误”的解决方法
    [ASP.Net]ASP.NET中上传文件
    [.net]"Request.Form出现乱码"的解决方法
    正式进驻博客园
    [ASP.NET] 限制上传文件类型的两种方法(转)
    错误类型:“系统找不到 Microsoft.Office.Interop.Word"
    从客户端检测到有潜在危险的Request.Form 值
  • 原文地址:https://www.cnblogs.com/aiyoubucuo/p/14148891.html
Copyright © 2011-2022 走看看