笔记·软件管理

软件包基础

    http://pkgs.org
    http://rpmfind.net
    http://rpm.pbone.net
    https://sourceforge.net/

rpm包管理

    rpm包安装:
        #rpm -ivh PACKAGE_FILE ...
            --test: 测试安装,但不真正执行安装,即dry run模式
            --nodeps:忽略依赖关系
            --replacepkgs | replacefiles
            --nosignature: 不检查来源合法性
            --nodigest:不检查包完整性
            --noscripts:不执行程序包脚本
            %pre: 安装前脚本 --nopre
            %post: 安装后脚本 --nopost
            %preun: 卸载前脚本 --nopreun
            %postun: 卸载后脚本 --nopostun

    rpm包升级
        #rpm -Uvh PACKAGE_FILE ...
        # rpm -Fvh PACKAGE_FILE ...
            --oldpackage:降级
            --force: 强制安装

    包查询
        -qa        #所有包
        -q PACKAGE        #查询
        -qi PACKAGE        #information
        -qc PACKAGE        #查询程序的配置文件
        -ql PACKAGE        #查询程序安装后生成的所有文件
        -qd PACKAGE        #查询程序的文档
        -q --scripts PACKAGE        #程序包自带的脚本
        -qf FILE                    #查询指定的文件由哪个程序包安装生成
        -qpi PACKAGE_FILE            #针对尚未安装的包查询信息
        -qpl PACKAGE_FILE, ...        #针对尚未安装的包查询生成的文件
        #和CAPABILITY相关
            --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
            --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
            --provides:列出指定程序包所提供的CAPABILITY
            -R:查询指定的程序包所依赖的CAPABILITY

    包卸载
        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
        #rpm -e rpm --nodeps

    包校验
        #rpm -K|--checksig rpmfile
        在检查包的来源和完整性前,必须导入所需要公钥
            #rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
            #rpm -qa "gpg-pubkey*"

yum管理

    yum客户端配置文件:
        /etc/yum.conf     #为所有仓库提供公共配置
        /etc/yum.repos.d/*.repo: #为每个仓库的提供配置文件

    repo仓库配置文件指向的定义:
        [repositoryID]
        name=Some name for this repository
        baseurl=url://path/to/repository/
        enabled={1|0}
        gpgcheck={1|0}
        gpgkey=URL
        enablegroups={1|0}
        failovermethod={roundrobin|priority}
        roundrobin:意为随机挑选,默认值
        priority:按顺序访问
        cost= 默认为1000

    yum服务器的baseurl形式:
        file:// 本地路径
        http://
        https://
        ftp://

    yum的repo配置文件中可用的变量:
        $releasever: 当前OS的发行版的主版本号,如:8,7,6
        $arch: CPU架构,如:aarch64, i586, i686,x86_64等
        $basearch:系统基础平台;i386, x86_64
        $contentdir:表示目录,比如:centos-8,centos-7
        $YUM0-$YUM9:自定义变量

    yum-config-manager命令:可以生成yum仓库的配置文件及启用或禁用仓库,来自于yum-utils包
        #rpm -qf `which yum-config-manager`
        #增加仓库    yum-config-manager --add-repo URL或file
        #禁用仓库    yum-config-manager --disable "仓库名"
        #启用仓库    yum-config-manager --enable "仓库名"

    yum命令:
        #yum [options] [command] [package ...]
            -y #自动回答为"yes"
            -q #静默模式
            --nogpgcheck #禁止进行gpg check
            --enablerepo=repoidglob #临时启用此处指定的repo,支持通配符,如:"*"
            --disablerepo=repoidglob #临时禁用此处指定的repo,和上面语句同时使用,放在后面的生效
        #yum repolist [all|enabled|disabled]        #显示仓库列表
        #yum list        #显示程序包
        #yum list [all | glob_exp1] [glob_exp2] [...]
        #yum list {available|installed|updates} [glob_exp1] [...]        #显示可安装|已安装|可升级的包
        #yum install package1 [package2] [...]        #安装程序包
        #yum reinstall package1 [package2] [...]     #重新安装
            --downloadonly #只下载相关包默认至/var/cache/yum/x86_64/7/目录下,而不执行install/upgrade/erase
            --downloaddir=<path>, --destdir=<path> #--downloaddir选项来指定下载的目录,如果不存在自动创建
        #yum remove | erase package1 [package2] [...]    #卸载程序包
        #yum check-update        #检查可用升级
        #yum upgrade|update [package1] [package2] [...]
        #yum downgrade package1 [package2] [...] (降级)    
        #yum info [...]        #查询
        #yum provides | whatprovides feature1 [feature2] [...]        #查看指定的特性(可以是某文件)是由哪个程序包所提供
        #yum search string1 [string2] [...]        #以指定的关键字搜索程序包名及summary信息
        #yum deplist package1 [package2] [...]        #查看指定包所依赖的capabilities
        #dnf repoquery -l memcached        #CentOS 8 查看未安装包的文件列表
        #repoquery -ql memcached        #CentOS 7 查看未安装包的文件列表
        #yum clean [ packages|metadata|expire-cache|rpmdb|plugins|all ]    #清除目录/var/cache/yum/缓存
        #yum makecache        #构建缓存
        #yum history [info|list|packages-list|packages-info|summary|addoninfo|redo|undo|rollback|new|sync|stats]    #yum历史命令
        #yum localinstall|install rpmfile1 [rpmfile2] [...]        #安装本地程序包
        #yum localupdate|update rpmfile1 [rpmfile2] [...]        #升级本地程序包
        #yum updateinfo --summary|--list|--info        #查看包的安全警报

    包组管理的相关命令:
        #yum grouplist [hidden] [groupwildcard] [...]
        #yum groupinstall group1 [group2] [...]
        #yum groupupdate group1 [group2] [...]
        #yum groupremove group1 [group2] [...]
        #yum groupinfo group1 [...]

    私用yum仓库:
        下载所有yum仓库的相关包和meta数据:
            #reposync --repoid=REPOID --download-metadata -p /path    #CentOS7以前版本,reposync工具来自于yum-utils包
            #dnf reposync --repoid=REPOID --download-metadata -p /path    #默认只下载rpm包,不下载meta数据,需要指定--download-metadata才能下载meta
        创建私有yum仓库:
            #createrepo [options] <directory>

DNF管理:

    配置文件:
        /etc/dnf/dnf.conf
    仓库文件:
        /etc/yum.repos.d/ *.repo
    日志文件:
        /var/log/dnf.rpm.log
        /var/log/dnf.log
    命令:
        #dnf [options] <command> [<arguments>...]
        #dnf --version
        #dnf repolist
        #dnf reposync
        #dnf install httpd
        #dnf remove httpd
        #dnf clean all
        #dnf makecache
        #dnf list installed
        #dnf list available
        #dnf search nano
        #dnf history undo 1

编译安装:

    第一步:运行 configure 脚本,生成 Makefile 文件
        安装路径设定
            System types:支持交叉编译
                --prefix=/PATH:指定默认安装位置,默认为/usr/local/
                --sysconfdir=/PATH:配置文件安装位置    
        软件特性和相关指定:
            Optional Features: 可选特性
                --disable-FEATURE
                --enable-FEATURE[=ARG]
            Optional Packages: 可选包
                --with-PACKAGE[=ARG] 依赖包
                --without-PACKAGE 禁用依赖关系
    第二步:make
    第三步:make install

Ubuntu软件管理

    dpkg包管理器:            
        dpkg -i package.deb        #安装包
        dpkg -r package            #删除包,不建议,不自动卸载依赖于它的包
        dpkg -P package            #删除包(包括配置文件)
        dpkg -l                    #列出当前已安装的包,类似rpm -qa
        dpkg -l package            #显示该包的简要说明
        dpkg -s package            #列出该包的状态,包括详细信息,类似rpm –qi
        dpkg -L package            #列出该包中所包含的文件,类似rpm –ql
        dpkg -S <pattern>        #搜索包含pattern的包,类似rpm –qf
        dpkg --configure package        #配置包,-a 使用,配置所有没有配置的软件包
        dpkg -c package.deb                #列出 deb 包的内容,类似rpm –qpl
        dpkg --unpack package.deb        #解开 deb 包的内容

    apt包管理:
        apt命令             被取代的命令             命令的功能
        apt install         apt-get install         安装软件包
        apt remove             apt-get remove             移除软件包
        apt purge             apt-get purge             移除软件包及配置文件
        apt update             apt-get update             刷新存储库索引
        apt upgrade         apt-get upgrade         升级所有可升级的软件包
        apt autoremove         apt-get autoremove         自动删除不需要的包
        apt full-upgrade     apt-get dist-upgrade     在升级软件包时自动处理依赖关系
        apt search             apt-cache search         搜索应用程序
        apt show             apt-cache show             显示安装细节
        apt 特有的命令:
            #apt list 列出包含条件的包(已安装,可升级等)
            #apt edit-sources 编辑源列表
        APT包索引配置文件:
            /etc/apt/sources.list
            /etc/apt/sources.list.d
        apt命令操作日志:
            /var/log/dpkg.log
        查询软件xxx依赖哪些包:
            #apt depends xxx
            #apt-cache depends xxx

posted @ 2022-07-25 18:02  Krill_ss  阅读(76)  评论(0编辑  收藏  举报