返回顶部
首页 > 资讯 > 操作系统 >linux程序包管理 rpm yum 编译
  • 681
分享到

linux程序包管理 rpm yum 编译

2024-04-02 19:04:59 681人浏览 安东尼
摘要

rpm命令:rpm  [OPTioNS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载

rpm命令:rpm  [OPTioNS]  [PACKAGE_FILE]

安装:-i, --install

升级:-U, --update, -F, --freshen

卸载:-e, --erase

查询:-q, --query

校验:-V, --verify

数据库维护:--builddb, --initdb

安装:rpm {-i|--install} [install-options] PACKAGE_FILE ...

rpm  -ivh  PACKAGE_FILE ...

GENERAL OPTIONS:

-v:verbose,详细信息

-vv:更详细的输出

[install-options]:

-h:hash marks输出进度条;每个#表示2%的进度;

--test:测试安装,检查并报告依赖关系及冲突消息等;

--nodeps:忽略依赖关系;不建议;

--replacepkgs:重新安装

注意:rpm可以自带脚本;

四类:--noscripts

preinstall:安装过程开始之前运行的脚本,%pre , --nopre

postinstall:安装过程完成之后运行的脚本,%post , --nopost

preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun 

postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun

--nosignature:不检查包签名信息,不检查来源合法性;

--nodigest:不检查包完整性信息;

升级:rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-U:升级或安装;

-F:升级

rpm  -Uvh PACKAGE_FILE ...

rpm  -Fvh PACKAGE_FILE ...

--oldpackage:降级;

--force:强制升级;

注意:(1) 不要对内核做升级操作;linux支持多内核版本并存,因此,直接安装新版本内核;

  (2) 如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;

    

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

--allmatches:卸载所有匹配指定名称的程序包的各版本;

--nodeps:忽略依赖关系

--test:测试卸载,dry run模式

查询:rpm {-q|--query} [select-options] [query-options]

 [select-options]

     PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;

-a, --all:查询所有已经安装过的包;

-f  FILE:查询指定的文件由哪个程序包安装生成;

-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;

--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;

[query-options]

-changelog:查询rpm包的changlog;

-l, --list:程序安装生成的所有文件列表;

-i, --info:程序包相关的信息,版本号、大小、所属的包组,等;

-c, --configfiles:查询指定的程序包提供的配置文件;

-d, --docfiles:查询指定的程序包提供的文档;

--provides:列出指定的程序包提供的所有的CAPABILITY;

-R, --requires:查询指定的程序包的依赖关系;

--scripts:查看程序包自带的脚本片断;

用法:

-qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

-qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...

校验:

rpm {-V|--verify} [select-options] [verify-options]

S file Size differs

M Mode differs (includes permissions and file type)

5 digest (fORMerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

    包来源合法性验正和完整性验正:

来源合法性验正:

完整性验正:

获取并导入信任的包制作者的密钥:

对于Centos发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验正:

(1) 安装此组织签名的程序时,会自动执行验正;

(2) 手动验正:rpm -K PACKAGE_FILE

数据库重建:rpm管理器数据库路径:/var/lib/rpm/

查询操作:通过此处的数据库进行;

获取帮助:

CentOS 6:man rpm

CentOS 7:man rpmdb

rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

       --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;





CentOS: yum, dnf

YUM: yellow dog, Yellowdog Update Modifier

yum repository: yum repo

存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);

文件服务器

ftp://

Http://

nfs://

file:///

yum客户端:

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

/etc/yum.repos.d/*.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,意为随机挑选;

cost=

默认为1000

yum命令的用法:

yum [options] [command] [package ...]

       command is one of:

        * install package1 [package2] [...]

        * update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        * distribution-synchronization [package1] [package2] [...]

        * remove | erase package1 [package2] [...]

        * list [...]

        * info [...]

        * provides | whatprovides feature1 [feature2] [...]

        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

        * history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

        * check

        * help [command]

显示仓库列表:repolist [all|enabled|disabled]

显示程序包:

     list

     # yum list [all | glob_exp1] [glob_exp2] [...]

     # yum list {available|installed|updates} [glob_exp1] [...]

 安装程序包:install package1 [package2] [...]

                        reinstall package1 [package2] [...]  (重新安装)

 升级程序包:update [package1] [package2] [...]

                        downgrade package1 [package2] [...] (降级)

检查可用升级:check-update

卸载程序包:remove | erase package1 [package2] [...]

查看程序包information: info [...]

 查看指定的特性(可以是某文件)是由哪个程序包所提供: provides | whatprovides feature1 [feature2] [...]

 清理本地缓存: clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

 构建缓存:makecache

 搜索:search string1 [string2] [...]

以指定的关键字搜索程序包名及summary信息;

查看指定包所依赖的capabilities:deplist package1 [package2] [...]

查看yum事务历史:history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

 安装及升级本地程序包:

* localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

 包组管理的相关命令:

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

 如何使用光盘当作本地yum仓库:

     (1) 挂载光盘至某目录,例如/media/cdrom

     # mount -r -t iso9660 /dev/cdrom /media/cdrom

     (2) 创建配置文件

     [CentOS7]

     name=

     baseurl=

     gpgcheck=

     enabled=

 yum的命令行选项:

     --nogpgcheck:禁止进行gpg check;

     -y: 自动回答为“yes”;

     -q:静默模式;

     --disablerepo=repoidglob:临时禁用此处指定的repo;

     --enablerepo=repoidglob:临时启用此处指定的repo;

     --noplugins:禁用所有插件

 yum的repo配置文件中可用的变量:

     $releasever: 当前OS的发行版的主版本号;

     $arch: 平台;

     $basearch:基础平台;

     $YUM0-$YUM9

     http://mirrors.magedu.com/centos/$releasever/$basearch/os

    创建yum仓库:

     createrepo [options] <directory>

代码编译安装三步骤:

 ./configure:

     (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;

     (2) 检查依赖到的外部环境;

make:根据makefile文件,构建应用程序;

make install

 开发工具

     autoconf: 生成configure脚本

     automake:生成Makefile.in

建议:安装前查看INSTALL,README

开源程序源代码的获取:

     官方自建站点:

     apache.org (ASF)

     mariadb.org

     ...

     代码托管:

     SourceForge

     GitHub.com

     code.Google.com

     C/C++: gcc (GNU C Complier)

     编译C源代码:

     前提:提供开发工具及开发环境

     开发工具:make, gcc等

     开发环境:开发库,头文件

     glibc:标准库

通过“包组”提供开发组件

     CentOS 6: "Development Tools", "Server Platform Development",

第一步:configure脚本

     选项:指定安装位置、指定启用的特性

     --help: 获取其支持使用的选项

     选项分类:

     安装路径设定:

     --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

     --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

     System types:

     Optional Features: 可选特性

     --disable-FEATURE

     --enable-FEATURE[=ARG]

     Optional Packages: 可选包

     --with-PACKAGE[=ARG]

     --without-PACKAGE

第二步:make

第三步:make install

安装后的配置:

     (1) 导出二进制程序目录至PATH环境变量中;

     编辑文件/etc/profile.d/NAME.sh

     export PATH=/PATH/TO/BIN:$PATH

                (2) 导出库文件路径

     编辑/etc/ld.so.conf.d/NAME.conf

     添加新的库文件所在目录至此文件中;

     让系统重新生成缓存:

     ldconfig [-v]

                (3) 导出头文件

     基于链接的方式实现:

     ln -sv 

     (4) 导出帮助手册

     编辑/etc/man.config文件

     添加一个MANPATH


--结束END--

本文标题: linux程序包管理 rpm yum 编译

本文链接: https://lsjlt.com/news/38701.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux程序包管理 rpm yum 编译
    rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载...
    99+
    2024-04-02
  • linux程序包管理rpm,yum和编译安装以及冒泡排序练习
    linux程序包管理:API:Application Programming InterfacePOSIX:Portable OS程序源代码--> 预处理--> 编译--> 汇编-->...
    99+
    2024-04-02
  • linux的程序包管理-rpm
        我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合。应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文...
    99+
    2024-04-02
  • Linux软件包管理器rpm与yum
    在我们的运维工作,总是避免不了安装某些软件,或者编译安装某些软件,我们知道操作系统当中的程序都是有程序员通过开发工具开发的来,程序员直接编写的纯文本的文档我们称之为源代码,但我们的计算机只能识别二进制程序,...
    99+
    2024-04-02
  • 如何分析Linux RPM和YUM包管理
    本篇文章为大家展示了如何分析Linux RPM和YUM包管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先决条件为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个 ...
    99+
    2023-06-16
  • Linux系统程序包管理之rpm
    Linux系统程序包管理之rpm==============================================================================概述: ...
    99+
    2024-04-02
  • linux程序包管理--rpm命令管理方式
    1.概述API:Application Program Interface ABI:Application Binary Interface   ...
    99+
    2024-04-02
  • Linux学习笔记:rpm程序包管理
    以CentOS为例,rpm程序包管理器的相关内容如下:CentOS的程序包管理器:    程序包的命名规则:       &n...
    99+
    2024-04-02
  • 软件包的管理(rpm和yum)
        软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的...
    99+
    2024-04-02
  • rpm程序包管理器详解
    1. 程序包管理器的功能    我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用...
    99+
    2024-04-02
  • 包管理工具rpm和yum的用法
    包管理工具rpm和yum的用法一、rpm的用法rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐收到其他发行版的采用,R...
    99+
    2024-04-02
  • linux软件包管理-rpm
    1.程序包管理功能:将编译好的应用程序的各组件组成文件打包成一个或几个程序包文件,从而更方便快捷实现程序包的安装升级,卸载和查询等管理操作  1 程序包的组成清单(每个程序包都单独实现)...
    99+
    2024-04-02
  • CentOS程序包管理器之rpm前端管理器
    CentOS的程序包管理器:首先,我们要来了解一下程序包(源代码包)的命名规则:software_name-VERSION.tar.gzVERSION:major.minor.releasemajor:主版...
    99+
    2024-04-02
  • Linux程序包管理
    Linux程序包管理RPM包基础RPMYUM编译安装概述Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm、yum、源码编译来浅析Linux的程序包管理。首先,我们来看下本文的主要内容:-...
    99+
    2024-04-02
  • 【Linux】软件包管理器 yum
    前言: 对于之前学习的内容如果大家理解为让大家知道【linux】基本知识并且会使用它,那么接下来的学习的知识便是让各位小伙伴在纯【linux】环境下进行程序的开发,为了达到这一目的我们就需要使用工具的辅助。因此,接下来给大家讲述的便是【li...
    99+
    2023-09-01
    linux 运维 服务器
  • linux命令:rpm软件包管理
       rpm命令简介:     rpm:软件管理器         数据库:/var/lib/rpm &n...
    99+
    2024-04-02
  • Linux中如何实现程序包管理与使用rpm命令
    这篇文章主要为大家展示了“Linux中如何实现程序包管理与使用rpm命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何实现程序包管理与使用rpm...
    99+
    2024-04-02
  • Linux程序包管理(CentOS)
    二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件程序包管理器:debian:deb, dptredhat: rpm, rpmrpm: Redhat Package Manager(RPM i...
    99+
    2024-04-02
  • Linux yum软件包管理方法
    简介 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自...
    99+
    2022-06-04
    Linux yum 软件包 管理
  • Linux系统程序包管理
    Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作