Linux最全软件包管理!看这个就对了!

软件包命名规则的定义:

1  name-Version-release.arch.rpm
2  软件包的分类和拆包:
3  Application-Version-Arch.rpm,主包
4  Application-devel-Version-Arch.rpm,开发包
5  Application-utils-Version-Arch.rpm
6  Application-libs-Version-Arch.rpm
7  由于包之间存在存在依赖关系,所以解决依赖包管理工具
8  yum:rpm的前端管理工具
9  apt-get:debian
10  dnf:Fedora 18+

查看二进制程序依赖的库文件

ldd BINARY_FILE

v2-1f645f7e7c0e8d205bed5ed62c7a44ed_hd.jpg

查看系统已经装载的所有的库文件

ldconfig -p,显示本已经缓存的库文件

v2-e45c2803710d0534efe6b9036b553473_hd.jpg

加载库的配置文件路径:/etc/ld.so.conf.d/*.conf,/etc/ld.so.conf

包管理器:

实现程序包的安装、卸载、查询、升级和校验等管理操作
包文件的组成:
    rpm包内文件
    rpm的元数据
    安装或卸载时的脚本
rpm安装包的数据库文件路径:/var/lib/rpm,如果删除这数据库,则无法实现原来的软件的安装、查询,等操作

v2-39a82a839c96f956ed015ece76592cb2_hd.jpg

rpm

rpm {-i|install}[install-options] PACKAGE_FILE
        -i,install
        -v,verbose
        -h,以#显示安装进度

v2-1c75e7f5d653d68bdd8cfe29457de8b4_hd.png

rpm -K,检查程序包的完整性

v2-e91114445ffe166ce7b93b36198a14b1_hd.png

rpm --import,导入程序包的密钥

rpm --root,指定安装的程序包的目录

v2-75ca6997f8652ea1b7cd78990fe18bc7_hd.png

rpm -q,查询时只需使用包名
        --scripts,查询安装包里的脚本

v2-832fb2337d8ae15917c3bd6375fb9a5a_hd.jpg

rpm -qa,查询所有符合条件的包

v2-43d9fdb3c0799649b65227543c8b8bef_hd.jpg

rpm -ql,列出包安装后生成的文件列表

v2-06c0505e6d0662946590aab61f41639a_hd.jpg

rpm -qf,查询某个文件是那个安装包生成的

v2-f53bdcbfd168a2ee906866b7f3709b9d_hd.png

rpm -p,查询还没安装的软件包的信息,通常与i,d,c等选项一起使用

rpm -qc,查询程序包的安装后生成配置文件

v2-01118292604dd3f2f64b88075121e26b_hd.png

rpm -qd,查询程序包安装后生成的帮助文档

v2-11a9a55aa76afd75cf5adaef56c69b67_hd.png

rpm -qi,查询程序包的详细信息

v2-130eceefebf6c51c288844ea24ea68e9_hd.jpg

rpm --whatprovider CAPABILITY,查询指定CAPABILITY由那个包提供

    [install-options]
        --test,测试安装,不真正执行安装
        --nodeps,忽略依赖关系,安装包时,包存在的依赖关系
        --replacepkgs|replacefiles,覆盖安装,当某个包出现错误时,可以使用此选项
        --nochecksignture,不检测来源的合法性,默认是检查
        --nodigest,不检测包的完整性,默认是检查
        --noscripts,不执行程序包里的脚本
            %pre    --nopre
            %post   --nopost
            %preun  --nopreun
            %postun --nopostun
    升级:
        rpm {-u|--upgrade}[install-options] PACKAGE_FILE
            upgrade,安装有旧版本,则升级,不存在则安装
            freshen,安装有旧版本,则升级,不存在则不升级
    强制:
        force
    注意:
        1. 内核包的升级,一般使用安装新的内核包(rpm -ivh kernel-version),而不使用升级操作,实现多内核版本并存

v2-d334ea31384e8d0757f331c326d309a1_hd.png

2. 如果原程序包的配置文件曾被修改,安装或者升级该程序包,原有的程序包的配置文件将被自动重名为Package.rpm.config


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

v2-dd05123564e63fd8ce13ca588d4118a5_hd.png

校验
    rpm{-V|--verify}[select-options][verify-options]
        S file
        M Mode
        5 digest,md5
        T timestamp
        U user ownership
        G group ownership

v2-37a1b8c0568521e244707846336ae141_hd.jpg

rpm包解包

rpm2cpio PACKAGE_FILE | cpio -idv

v2-130eceefebf6c51c288844ea24ea68e9_hd.jpg

yum,解决rpm安装二进制程序时的产生的依赖关系

repo仓库的路径:/etc/yum.repos.d/
repo的缓存目录:/var/yum/cache
创建一个repo仓库:在/etc/yum.repos.d/新建一个*.repo文件
    文件服务器:
        http://
        ftp://
        file://
示例:

v2-8fc012db534e8baac8fba17762d508af_hd.jpg

yum [options] command
    command
        repolist,列出所有的repo仓库

v2-4c52dfd8f766c23e3c06dd4673b075e0_hd.png

yum install,安装指定的二进制程序

v2-36faf89613e91ffdc96fb6d0f745eb10_hd.jpg

yum search,搜索仓库里带有特定关键字的包

v2-5cbc990e950febc95ec3e0f95247a1a9_hd.png

yum  list,显示当前仓库的所有的包
    installed,当前系统已经安装的包

v2-8752fb4a26e8a747f78f40a08cb50fae_hd.jpg

yum remove,卸载指定的二进制程序

yum info,显示仓库里指定二进制程序的信息

v2-4bacfaf94d2af4759a30f09a7043c896_hd.jpg

yum history,显示yum命令的执行历史
    info,显示yum历史的详细信息

v2-15b9111f147f1fffaf79b54261c1a651_hd.jpg

yum  history list,显示已经执行过的yum的历史

yum histrory undo,撤销yum命令历史中指定的id执行的操作,相当于移除

v2-cb4ef99c9df6765f20b86757451d93e2_hd.jpg

yum history redo,重新执行yum命令历史中指定的id执行的操作,相当于安装

v2-6a80599ae3b102d8a7542b929d68749c_hd.jpg

yum clean,清理yum仓库的缓存信息
    all,清理所有缓存信息

v2-3bc825fcf6d5e1b220f3361e754503f7_hd.png

yum的repo配置文件中常用的变量
    $realsever,当前OS的主版本号
    $arch,平台
    $basearch,基础平台

yum-config-manager --enable "仓库名"
yum-config-manager --disable "仓库名"

v2-726b14a9f5e7441ea04f81174fc41b68_hd.jpg

包组管理的相关命令:
    yum groupinstall group1 [group2] [...]
    yum groupupdate group1 [group2] [...]
    yum grouplist [hidden] [groupwildcard] [...]
    yum groupremove group1 [group2] [...]
    yum groupinfo group1 [...]
yum的命令行选项:
    --nogpgcheck:禁止进行gpg check
    -y: 自动回答为“yes”
    -q:静默模式
    --disablerepo=repoidglob:临时禁用此处指定的repo
    --enablerepo=repoidglob:临时启用此处指定的repo
    --noplugins:禁用所有插件

    程序包编译
        C\C++:make项目管理器
            configure脚本 --> Makefile.in  --> Makefile
        C语言源代码编译三步骤:
            1. ./configure脚本
                (1)传递相应的参数,指定启用特性等,生成相应的Makefile
                (2)检查依赖的软件包
            2. Make
            3. Makeinstll


猜你喜欢

转载自blog.51cto.com/mageedu/2464579