rpm 订阅
RPM [1]  是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。 展开全文
RPM [1]  是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
信息
设计理念
开放式
外文名
RPM Package Manager
含    义
RPM软件包管理器缩写
中文名
RPM软件包管理器
RPM管理器
RPM软件包管理器英文原义:RPM Package Manager(原Red Hat Package Manager,是一个递归缩写)注解:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。与Dpkg类似。
收起全文
精华内容
下载资源
问答
  • 2021-10-20 09:20:56

    常用组合体:

    -ivh 获得一个详细的安装进程
    --nodeps 忽略依赖关系
    --force 强制安装
    -U 包名:升级安装
    -F 更新不管是什么直接覆盖
    --replacepkgs这样 RPM 将忽略该错误信息 -vih --replacepkgs
    -q name :查询
    -qa查询所有已安装的RPM
    -qi name 查询这个软件详细信息
    -ql 显示列表
    -qf path  :查询一个文件属于哪个包
    -qp 包名 :查文件是什么
    -qpl 包名 :针对一个没装过的包
    rpm -qc 配置文件
    效验 rpm  -Va
    rpm  -Vf /bin/ls
    rpm  -Vp 包名
    5 -- MD5 校验和
    S -- 文件长度
    L -- 符号链接
    T -- 文件修改日期
    D -- 设备
    U -- 用户
    G -- 用户组
    M -- 模式 (包含许可和文件类型)
    ? -- 不可读文件
    
    rpm -qpl xxxxxx.rpm


    一.如何安装rpm软件包

    rmp软件包的安装能够使用程式rpm来完成。执行下面的命令rpm -i your-package.rpm。
    其中your-package.rpm是您要安装的rpm包的文档名,一般置于当前目录下。
    安装过程中可能出现下面的警告或提示:
    ... conflict with ... 可能是要安装的包里有一些文档可能会覆盖现有的文档,缺省时这样的情况下是无法正确安装的能够用
    rpm --force -i 强制安装即可
    ... is needed by ...
    ... is not installed ... 此包需要的一些软件您没有安装能够用
    rpm --nodeps -i 来忽略此信息
    也就是说,rpm -i --force --nodeps 能够忽略任何依赖关系和文档问题,什么包都能安装上,但这种强制安装的软件包不能确保完全发挥功能


    二.如何安装.src.rpm软件包
     

     有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法,
    方法一:
        1.执行rpm -i your-package.src.rpm
        2. cd /usr/src/redhat/SPECS
        3. rpmbuild -bp your-package.specs 一个和您的软件包同名的specs文档
        4. cd /usr/src/redhat/BUILD/your-package/ 一个和您的软件包同名的目录 
        5. ./configure 这一步和编译普通的源码软件相同,能够加上参数
        6. make
        7. make install
    方法二:
        1.执行rpm -i you-package.src.rpm
        2. cd /usr/src/redhat/SPECS前两步和方法一相同
        3. rpmbuild -bb your-package.specs 一个和您的软件包同名的specs文档
        这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)在这个目录下,             
        有一个新的rpm包,这个是编译好的二进制文档。执行rpm -i new-package.rpm即可安装完成。

    三.如何卸载rpm软件包
       

     使用命令 rpm -e 包名,包名能够包含版本号等信息,但是不能够有后缀.rpm
    比如卸载软件包proftpd-1.2.8-1,能够使用下列格式:
        rpm -e proftpd-1.2.8-1
        rpm -e proftpd-1.2.8
        rpm -e proftpd-
        rpm -e proftpd
    不能够是下列格式:
        rpm -e proftpd-1.2.8-1.i386.rpm
        rpm -e proftpd-1.2.8-1.i386
        rpm -e proftpd-1.2
        rpm -e proftpd-1
    有时会出现一些错误或警告:
    ... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载,能够用rpm -e --nodeps强制卸载

    四.如何不安装但是获取rpm包中的文档

    使用工具rpm2cpio和cpio
    rpm2cpio xxx.rpm | cpio -vi
    rpm2cpio xxx.rpm | cpio -idmv
    rpm2cpio xxx.rpm | cpio --extract --make-directories
    参数i和extract相同,表示提取文档。v表示指示执行进程
    d和make-directory相同,表示根据包中文档原来的路径建立目录
    m表示保持文档的更新时间。

    五.如何查看和rpm包相关的文档和其他信息

    下面任何的例子都假设使用软件包mysql-3.23.54a-11
       1.我的系统中安装了那些rpm软件包
    rpm -qa 讲列出任何安装过的包
    假如要查找任何安装过的包含某个字符串sql的软件包
    rpm -qa |grep sql
       2.如何获得某个软件包的文档全名
    rpm -q mysql 能够获得系统中安装的mysql软件包全名,从中能够获得当前软件包的版本等信息。这个例子中能够得到信息mysql-3.23.54a-11
       3.一个rpm包中的文档安装到那里去了?
    rpm -ql 包名
    注意这里的是不包括.rpm后缀的软件包的名称,也就是说只能用mysql或mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
    假如只是想知道可执行程式放到那里去了,也能够用which,比如
    which mysql
       4.一个rpm包中包含那些文档
    一个没有安装过的软件包,使用rpm -qlp ****.rpm
    一个已安装过的软件包,还能够使用rpm -ql ****.rpm
       5.如何获取关于一个软件包的版本,用途等相关信息?
    一个没有安装过的软件包,使用rpm -qip ****.rpm
    一个已安装过的软件包,还能够使用rpm -qi ****.rpm
       6.某个程式是哪个软件包安装的,或哪个软件包包含这个程式
    rpm -qf `which 程式名` 返回软件包的全名
    rpm -qif `which 程式名` 返回软件包的有关信息
    rpm -qlf `which 程式名` 返回软件包的文档列表
    注意,这里不是引号,而是`,就是键盘左上角的那个键。
    也能够使用rpm -qilf,同时输出软件包信息和文档列表
       7.某个文档是哪个软件包安装的,或哪个软件包包含这个文档注意,前一个问题中的方法,只适用和可执行的程式,而下面的方法,不但能够用于可执行程式,也能够用于普通的任何文档。前提是知道这个文档名。首先获得这个程式的完整路径,能够用whereis或which,然后使用rpm -qf例如:
    # whereis ftptop
    ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz
    # rpm -qf /usr/bin/ftptop
    proftpd-1.2.8-1
    # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
    proftpd-1.2.8-1
    总结:
    获得软件包相关的信息用rpm -q,q表示查询query,后面能够跟其他选项,比如
    i 表示info,获得软件包的信息;
    l 表示list,获得文档列表;
    a 表示all,在任何包中执行查询;
    f 表示file,根据文档进行相关的查询;
    p 表示package,根据软件包进行查询
    需要的查询条件能够使用grep产生,或从"` `"中的命令行产生

    六.关于rpm软件包的一些相关知识
       

       1.什么是rpm
        rpm 即RedHat Package Management,是RedHat的发明之一
       2.为什么需要rpm
    在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的程式,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,连同安装,配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统以后,只要是符合rpm文档标准的打包的程式都能够方便的安装,升级,卸载
       3.是不是任何的linux都使用rpm
    任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门但是TL,Mandrake等系统也都使用rpm。由于rpm的源程式能够在别的系统上进行编译,所以有可能在别的系统上也使用rpm除了rpm,其他一些系统也有自己的软件包管理程式,例如debian的deb包,
    slakware也都有自己的包管理系统
       4.rpm包的文档名为什么那么长
    rpm包的文档名中包含了这个软件包的版本信息,操作系统信息,硬件需要等等。比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示用于intel x86平台,还可能是sparc等。
       5.软件包文档名中的i386,i686是什么意思
    rpm软件包的文档名中,不但包含了软件名称,版本信息,还包括了适用的硬件架构的信息。
    i386指这个软件包适用于intel 80386以上的x86架构的电脑(AI32)
    i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的电脑(IA32)
    noarch指这个软件包于硬件架构无关,能够通用。
    i686软件包的程式通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在x86机器上都能够用。向前一般不兼容。但是现在的电脑,奔腾pro以下的CPU已很少用,通常配置的机器都能够使用i686软件包
       6.不同操作系统发行的rpm包可否混用?
    对于已编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。
    对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常能够在不同系统下安装。
       7.使用rpm时碰到的一些特别问题
    Q: 我用rpm -e **.rpm无法删除rpm包
    A :包名不要包括rpm,
    rpm -e 包名,能够包含版本号等信息,但是不能够有后缀.rpm
    Q:在MS的系统下有没有读RPM文档的工具?
    A :wincmd with rpm plugins.....
    Q:是否能够通过ftp安装安装升级rpm包?
    A 能够。rpm -ivh
    ftp://xxxxxxxx/PATH2SomeRPM
    Q: rpm安装时已有的包版本过高怎么办?
    A :有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要安装的包依赖的一些文档会很难找到。这时有两种解决办法,
    第一是在系统文档中找到和需要的文档功能相同或相似的文档,做一个符号链接到需要的目录下。
    第二是下载安装新版本的软件包。

    更多相关内容
  • cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-4.el6.x86_64.rpm gcc-4.4.7-4.el6.x86_64.rpm gcc-c++-4.4.7-4.el6.x86_64.rpm glibc-devel-2.12-1.132.el6.x86_64.rpm glibc-headers-2.12-1.132.el6.x86_64.rpm ...
  • linux unzip rpm安装包

    2018-08-09 16:33:00
    1、rpm包拷贝到linux 2、rpm -ivh 包名 3、找到zip包,unzip zip包
  • linux zip unzip RPM安装包,亲测可用 用于解压war包,zip包 内含unzip-6.0-5.el6.x86_64.rpm zip-3.0-1.el6_7.1.x86_64.rpm
  • g++rpm安装包

    热门讨论 2014-09-30 11:30:18
    libstdc++-3.4.6-11.i386.rpm libstdc++-devel-3.4.6-11.i386.rpm gcc-c++-3.4.6-11.i386.rpm glibc-2.3.4-2.43.i386.rpm glibc-common-2.3.4-2.43.i386.rpm cpp-3.4.6-3.i386.rpm glibc-kernheaders-2.4-9.1.98.EL....
  • jdk-8u121-linux-x64.rpm

    热门讨论 2017-02-22 08:51:35
    jdk-8u121-linux-x64.rpm 截至2017.02.22 最新版JDK For Linux x64 .rpm sha256: bd9f42e0725b32391c72f2800cdbb8a0c7db0ab2429b5f9e5bcf14b0090470a2 md5: de86e326f9fd98f080cd355081b4a3dc 大小:...
  • 离线安装nginx所需要的rpm

    热门讨论 2017-07-18 17:52:46
    离线安装nginx所需要的rpm
  • linux 安装oracle rpm

    热门讨论 2014-01-24 14:59:44
    安装文档与rpm包,全部 # rpm -ivh compat-db-4.1.25-9.i386.rpm # rpm -ivh compat-gcc-32-3.2.3-47.3.i386.rpm # rpm -ivh compat-gcc-32-c++-3.2.3-47.3.i386.rpm # rpm -ivh libaio-devel-0.3.105-2.i386.rpm # ...
  • 安装keepalived确实的rpm

    热门讨论 2013-07-09 17:47:45
    autoconf-2.63-5.1.el6.noarch.rpm automake-1.11.1-1.2.el6.noarch.rpm cluster-glue-1.0.5-2.el6.i686.rpm cluster-glue-libs-1.0.5-2.el6.i686.rpm cluster-glue-libs-devel-1.0.5-2.el6.i686.rpm glib2-2.22.5-5...
  • gnome-icon-theme-2.28.0-2.el6.noarch.rpm sgml-common-0.6.3-32.el6.noarch.rpm dmz-cursor-themes-0.4-4.el6.noarch.rpm libstdc++-devel-4.4.4-13.el6.x86_64.rpm kernel-headers-2.6.32-71.el6.x86_64.rpm ...
  • linux安装nfs服务所需rpm

    热门讨论 2014-09-15 09:08:24
    适用于redhat6.3版本 安装命令: rpm -ivh keyutils-1.4-4.el6.x86_64.rpm rpm -ivh libevent-1.4.13-4.el6....rpm -ivh nfs-utils-lib-1.1.5-4.el6.x86_64.rpm nfs-utils-1.2.3-26.el6.x86_64.rpm (此2个包同时安装)
  • docker-1.7.0 rpm

    热门讨论 2017-05-14 18:13:44
    redhat6.5 安装 docker 1.7.0 rpm安装包
  • gcc_rpm.tar.gz

    热门讨论 2017-04-17 23:54:35
    gcc离线安装 rpm 安装包
  • jdk-8u91-linux-x64.rpm

    2016-04-20 15:14:47
    jdk-8u91-linux-x64.rpm java jdk-8u91 linux-x64 .rpm 截至2016.04.20 最新版JDK For Linux x64 .rpm sha256: 9fed7d73b2f068d38d01e3c7639362a895a18c4f3845b32a5dcad4ab39d92ca6 md5: 967d658352ebd7fac8904fed...
  • gcc-3.4.6.rpm完整包

    千次下载 热门讨论 2014-10-15 14:51:18
    rpm -ivh glibc-kernheaders-2.4-9.1.103.EL.i386.rpm --nodeps --force rpm -ivh glibc-headers-2.3.4-2.43.i386.rpm --nodeps --force rpm -ivh glibc-devel-2.3.4-2.43.i386.rpm --nodeps --force rpm -ivh cpp-...
  • LINUX下RPM的使用方法

    千次阅读 2021-05-11 10:29:41
    RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的...

    RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;

    RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;

    一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的, Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的;

    软件安装流程图:

    73478_1713259_1.jpg

    本文使用范围:

    1、本文是对RPM管理的软件的说明,对通过file.tar.gz 或file.tar.bz2源码包用 make ;make install 安装的软件无效;

    2、安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat 您可以参考如下文章;

    1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看《Fedora 软件包管理器system-config-packages》

    2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法和《Fedora 软件包管理器system-config-packages》一样;

    5)所有的yum和apt 教程《apt and yum》

    目前 apt和yum 已经极为成熟了,建议我们安装软件时,采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ;

    一、RPM包管理的用途;

    1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;

    2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;

    3、可以在查询系统中的软件包是否安装以及其版本;

    4、作为开发者可以把自己的程序打包为RPM 包发布;

    5、软件包签名GPG和MD5的导入、验证和签名发布

    6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

    二、RPM 的使用权限;

    RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;

    三、rpm 的一点简单用法;

    我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;一)初始化rpm 数据库;

    通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

    [root@localhost beinan]# rpm --initdb

    [root@localhost beinan]# rpm --rebuilddb 注:这个要花好长时间;

    注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;二)RPM软件包管理的查询功能:

    命令格式

    rpm {-q|--query} [select-options] [query-options]

    RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm1、对系统中已安装软件的查询;

    1)查询系统已安装的软件;

    语法:rpm -q 软件名

    举例:

    [root@localhost beinan]# rpm -q gaim

    gaim-1.3.0-1.fc4

    -q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;

    查看系统中所有已经安装的包,要加 -a 参数 ;

    [root@localhost RPMS]# rpm -qa

    如果分页查看,再加一个管道 |和more命令;

    [root@localhost RPMS]# rpm -qa |more

    在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;

    [root@localhost RPMS]# rpm -qa |grep gaim

    上面这条的功能和 rpm -q gaim 输出的结果是一样的;

    2)查询一个已经安装的文件属于哪个软件包;

    语法 rpm -qf 文件名

    注:文件名所在的绝对路径要指出

    举例:

    [root@localhost RPMS]# rpm -qf /usr/lib/libacl.la

    libacl-devel-2.2.23-8

    3)查询已安装软件包都安装到何处;

    语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名

    举例:

    [root@localhost RPMS]# rpm -ql lynx

    [root@localhost RPMS]# rpmquery -ql lynx

    4)查询一个已安装软件包的信息

    语法格式: rpm -qi 软件名

    举例:

    [root@localhost RPMS]# rpm -qi lynx

    5)查看一下已安装软件的配置文件;

    语法格式:rpm -qc 软件名

    举例:

    [root@localhost RPMS]# rpm -qc lynx

    6)查看一个已经安装软件的文档安装位置:

    语法格式: rpm -qd 软件名

    举例:

    [root@localhost RPMS]# rpm -qd lynx

    7)查看一下已安装软件所依赖的软件包及文件;

    语法格式: rpm -qR 软件名

    举例:

    [root@localhost beinan]# rpm -qR rpm-python

    查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:

    [root@localhost RPMS]# rpm -qil lynx

    2、对于未安装的软件包的查看:

    查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;

    1)查看一个软件包的用途、版本等信息;

    语法: rpm -qpi file.rpm

    举例:

    [root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm

    2)查看一件软件包所包含的文件;

    语法: rpm -qpl file.rpm

    举例:

    [root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

    3)查看软件包的文档所在的位置;

    语法: rpm -qpd file.rpm

    举例:

    [root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

    5)查看一个软件包的配置文件;

    语法: rpm -qpc file.rpm

    举例:

    [root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

    4)查看一个软件包的依赖关系

    语法: rpm -qpR file.rpm

    举例:

    [root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm

    /bin/bash

    /usr/bin/python

    config(yumex) = 0.42-3.0.fc4

    pygtk2

    pygtk2-libglade

    rpmlib(CompressedFileNames) <= 3.0.4-1

    rpmlib(PayloadFilesHavePrefix) <= 4.0-1

    usermode

    yum >= 2.3.2

    三)软件包的安装、升级、删除等;

    1、安装和升级一个rpm 包;

    [root@localhost beinan]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包;

    [root@localhost beinan]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包;

    如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;

    语法结构:

    [root@localhost beinan]# rpm -ivh file.rpm --nodeps --force

    [root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force

    更多的参数,请查看 man rpm

    举例应用:

    [root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm

    Preparing... ########################################### [100%]

    1:lynx ########################################### [100%]

    [root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm

    Preparing... ########################################### [100%]

    1:lynx ########################################### [100%]

    注: --replacepkgs 参数是以已安装的软件再安装一次;有时没有太大的必要;

    测试安装参数 --test ,用来检查依赖关系;并不是真正的安装;

    [root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm

    Preparing... ########################################### [100%]

    由新版本降级为旧版本,要加 --oldpackage 参数;

    [root@localhost RPMS]# rpm -qa gaim

    gaim-1.5.0-1.fc4

    [root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm

    Preparing... ########################################### [100%]

    1:gaim ########################################### [100%]

    [root@localhost RPMS]# rpm -qa gaim

    gaim-1.3.0-1.fc4

    为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;

    [root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm

    Preparing... ########################################### [100%]

    1:gaim ########################################### [100%]

    [root@localhost RPMS]# ls /opt/

    gaim

    为软件包指定安装目录:要加 -relocate 参数;下面的举例是把lynx-2.8.5-23.i386.rpm 指定安装在 /opt/lynx 目录中;

    [root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm

    Preparing... ########################################### [100%]

    1:lynx ########################################### [100%]

    我们安装在指定目录中的程序如何调用呢?一般执行程序,都放在安装目录的bin或者sbin目录中;看下面的例子;如果有错误输出,就做相应的链接,用 ln -s ;

    [root@localhost RPMS]# /opt/lynx/usr/bin/lynx

    Configuration file /etc/lynx.cfg is not available.

    [root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg

    [root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org

    2、删除一个rpm 包;

    首先您要学会查询rpm 包 ;请看前面的说明;

    [root@localhost beinan]#rpm -e 软件包名

    举例:我想移除lynx 包,完整的操作应该是:

    [root@localhost RPMS]# rpm -e lynx

    如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件;

    [root@localhost beinan]# rpm -e lynx --nodeps

    四、导入签名:

    [root@localhost RPMS]# rpm --import 签名文件

    举例:

    [root@localhost fc40]# rpm --import RPM-GPG-KEY

    [root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora

    关于RPM的签名功能,详情请参见 man rpm五、RPM管理包管理器支持网络安装和查询;

    比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包;

    地址:

    http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/

    举例:

    命令格式:

    rpm 参数 rpm包文件的http或者ftp的地址

    # rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

    # rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

    举一反三吧;

    六、对已安装软件包查询的一点补充;

    [root@localhost RPMS]# updatedb

    [root@localhost RPMS]# locate 软件名或文件名

    通过updatedb,我们可以用 locate 来查询一些软件安装到哪里了;系统初次安装时要执行updatedb ,每隔一段时间也要执行一次;以保持已安装软件库最新;updatedb 是slocate软件包所有;如果您没有这个命令,就得安装slocate ;

    举例:

    [root@localhost RPMS]# locate gaim

    七、从rpm软件包抽取文件;

    命令格式: rpm2cpio file.rpm |cpio -div

    举例:

    [root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div

    抽取出来的文件就在当用操作目录中的 usr 和etc中;

    其实这样抽到文件不如指定安装目录来安装软件来的方便;也一样可以抽出文件;

    为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;

    [root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm

    Preparing... ########################################### [100%]

    1:gaim ########################################### [100%]

    [root@localhost RPMS]# ls /opt/

    gaim

    这样也能一目了然;gaim的所有文件都是安装在 /opt/gaim 中,我们只是把gaim 目录备份一下,然后卸掉gaim;这样其实也算提取文件的一点用法;

    八、RPM的配置文件;

    RPM包管理,的配置文件是 rpmrc ,我们可以在自己的系统中找到;比如Fedora Core 4.0中的rpmrc 文件位于;

    [root@localhost RPMS]# locate rpmrc

    /usr/lib/rpm/rpmrc

    /usr/lib/rpm/redhat/rpmrc

    我们可以通过 rpm --showrc 查看;具体的还得我们自己来学习。

    常见问题

    1.如何安装rpm软件包

    rmp软件包的安装可以使用程序rpm来完成。执行下面的命令

    rpm -i your-package.rpm

    其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

    安装过程中可能出现下面的警告或者提示:

    ... conflict with ...   可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的可以用rpm --force -i 强制安装即可

    ... is needed by ...

    ... is not installed ... 此包需要的一些软件你没有安装可以用 rpm --nodeps -i 来忽略此信息

    也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能

    2.如何安装.src.rpm软件包

    有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法,

    方法一:

    1.执行rpm -i your-package.src.rpm

    2.     cd /usr/src/redhat/SPECS

    3.     rpmbuild -bp your-package.specs          一个和你的软件包同名的specs文件

    4.     cd /usr/src/redhat/BUILD/your-package/    一个和你的软件包同名的目录

    5.     ./configure   这一步和编译普通的源码软件一样,可以加上参数

    6.     make

    7.     make install

    方法二:

    1.执行rpm -i you-package.src.rpm

    2.     cd /usr/src/redhat/SPECS

    前两步和方法一相同

    3.     rpmbuild -bb your-package.specs          一个和你的软件包同名的specs文件这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)

    在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

    执行rpm -i new-package.rpm即可安装完成。

    3.如何卸载rpm软件包

    使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm

    比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:

    rpm -e proftpd-1.2.8-1

    rpm -e proftpd-1.2.8

    rpm -e proftpd-

    rpm -e proftpd

    不可以是下列格式:

    rpm -e proftpd-1.2.8-1.i386.rpm

    rpm -e proftpd-1.2.8-1.i386

    rpm -e proftpd-1.2

    rpm -e proftpd-1

    有时会出现一些错误或者警告:

    ... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载可以用rpm -e --nodeps强制卸载

    4.如何不安装但是获取rpm包中的文件

    使用工具rpm2cpio和cpio

    rpm2cpio xxx.rpm | cpio -vi

    rpm2cpio xxx.rpm | cpio -idmv

    rpm2cpio xxx.rpm | cpio --extract --make-directories

    参数i和extract相同,表示提取文件。v表示指示执行进程

    d和make-directory相同,表示根据包中文件原来的路径建立目录

    m表示保持文件的更新时间。

    5.如何查看与rpm包相关的文件和其他信息

    下面所有的例子都假设使用软件包mysql-3.23.54a-11

    1.我的系统中安装了那些rpm软件包

    rpm -qa          讲列出所有安装过的包

    如果要查找所有安装过的包含某个字符串sql的软件包

    rpm -qa |grep sql

    2.如何获得某个软件包的文件全名

    rpm -q mysql     可以获得系统中安装的mysql软件包全名,从中可以获得

    当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11

    3.一个rpm包中的文件安装到那里去了?

    rpm -ql 包名

    注意这里的是不包括.rpm后缀的软件包的名称

    也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。

    如果只是想知道可执行程序放到那里去了,也可以用which,比如

    which mysql

    4.一个rpm包中包含那些文件

    一个没有安装过的软件包,使用rpm -qlp ****.rpm

    一个已经安装过的软件包,还可以使用rpm -ql ****.rpm

    5.如何获取关于一个软件包的版本,用途等相关信息?

    一个没有安装过的软件包,使用rpm -qip ****.rpm

    一个已经安装过的软件包,还可以使用rpm -qi ****.rpm

    6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序

    rpm -qf   `which 程序名`    返回软件包的全名

    rpm -qif `which 程序名`    返回软件包的有关信息

    rpm -qlf `which 程序名`    返回软件包的文件列表

    注意,这里不是引号,而是`,就是键盘左上角的那个键。

    也可以使用rpm -qilf,同时输出软件包信息和文件列表

    7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件

    注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以

    用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。

    首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:

    # whereis ftptop

    ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz

    # rpm -qf /usr/bin/ftptop

    proftpd-1.2.8-1

    # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt

    proftpd-1.2.8-1

    总结:

    获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如

    i   表示info,获得软件包的信息;

    l   表示list,获得文件列表;

    a   表示all,在所有包中执行查询;

    f   表示file,根据文件进行相关的查询;

    p   表示package,根据软件包进行查询

    需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生

    6.关于rpm软件包的一些相关知识

    1.什么是rpm

    rpm 即RedHat Package Management,是RedHat的发明之一

    2.为什么需要rpm

    在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的

    程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,

    配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个

    较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统

    以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载

    3.是不是所有的linux都使用rpm

    任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门

    但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译,

    所以有可能在别的系统上也使用rpm

    除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包,

    slakware也都有自己的包管理系统

    4.rpm包的文件名为什么那么长

    rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。

    比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字

    1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示

    用于intel x86平台,还可能是sparc等。

    5.软件包文件名中的i386,i686是什么意思

    rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构

    的信息。

    i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)

    i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32)

    noarch指这个软件包于硬件架构无关,可以通用。

    i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在

    x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少

    用,通常配置的机器都可以使用i686软件包

    6.不同操作系统发行的rpm包可否混用?

    对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。

    对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同系统下安装。

    7.使用rpm时遇到的一些特殊问题

    Q   我用rpm -e **.rpm无法删除rpm包

    A   包名不要包括rpm,

    rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm

    Q   在MS的系统下有没有读RPM文件的工具?

    A   wincmd with rpm plugins.....

    Q   是否可以通过ftp安装安装升级rpm包?

    A   可以。rpm -ivh    ftp://xxxxxxxx/PATH2SomeRPM

    Q   rpm安装时已有的包版本过高怎么办?

    A   有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要安装的包依赖的一些文件会找不到。

    这时有两种解决办法,第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到需要的目录下。第二是下载安装新版本的软件包

    展开全文
  • linux 下使用rpm安装gcc

    热门讨论 2013-01-15 13:44:10
    linux开发c语言必备编译器,采用rpm方式安装 按此顺序绝对行 rpm -Uvh glibc-kernheaders-2.4-9.1.103.EL.i386.rpm --nodeps --force rpm -Uvh glibc-headers-2.3.4-2.43.i386.rpm --nodeps --force rpm -Uvh ...
  • Redhat6 tigervnc tigervnc-server rpm安装包

    热门讨论 2015-04-17 09:44:39
    tigervnc-1.0.90-0.17.20110314svn4359.el6.x86_64.rpm tigervnc-server-1.0.90-0.17.20110314svn4359.el6.x86_64.rpm tigervnc-1.1.0-5.el6.x86_64.rpm tigervnc-server-1.1.0-5.el6.x86_64.rpm tigervnc-1.1.0-5....
  • 安装oracle时下载一个包就需要一分,太贵了,因此打包在一起让大家一起使用,包括:binutils-2.17.50.0.6-12.el4.rfb.x86_64.rpm compat-libstdc -33-3.2.3-68.1.i686.rpm compat-oracle-rhel4-1.0-5.i386.rpm ...
  • centos安装gcc需要的所有rpm

    热门讨论 2013-01-06 15:16:37
    rpm -Uvh glibc-kernheaders-2.4-9.1.103.EL.i386.rpm --nodeps --force rpm -Uvh glibc-headers-2.3.4-2.43.i386.rpm --nodeps --force rpm -Uvh glibc-devel-2.3.4-2.43.i386.rpm --nodeps --force rpm -Uvh cpp-...
  • Linux-Oracle11g最全rpm包(64位)

    千次下载 热门讨论 2014-09-05 10:46:47
    包括:cloog-ppl-0.15.7-1.2.el6.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm cpp-4.4.7-3.el6.x86_64.rpm elfutils-libelf-0.152-1.el6.x86_64.rpm elfutils-libelf-devel-0.125-3.el5.x86_64.rpm ...
  • ntp离线安装rpm

    2018-07-05 16:08:15
    NTP及依赖rpm包,含autogen-libopts-5.18-5.el7.x86_64.rpm、ntp-4.2.6p5-18.el7.centos.x86_64.rpm、ntpdate-4.2.6p5-18.el7.centos.x86_64.rpm
  • glibc rpm升级包

    热门讨论 2015-04-29 19:43:18
    linux glibc (2.14/2.15/2.18)rpm升级包
  • 64位centOS 6.5 安装gcc4.4.7所需的rpm

    热门讨论 2014-10-22 17:49:11
    cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-4.el6.x86_64.rpm gcc-4.4.7-4.el6.x86_64.rpm gmp-4.3.1-7.el6_2.2.x86_64.rpm libmpdclient2-2.1-1.el5.rf.x86_64.rpm mpc-0.19-1.el6.rf.x86_64.rpm mpfr-2.4.1-6...
  • 32位centos的gcc和gcc++rpm

    热门讨论 2013-02-23 23:12:15
    rpm -ivh kernel-headers-2.6.32-131.0.15.el6.i686.rpm rpm -ivh glibc-headers-2.12-1.25.el6.i686.rpm --force --nodeps rpm -ivh glibc-devel-2.12-1.25.el6.i686.rpm --force --nodeps rpm -ivh libgomp-...
  • samba_rpm完整服务器安装包下载

    千次下载 热门讨论 2013-10-03 21:35:04
    samba所需全套rpm安装包下载地址,兼容所有版本内核 samba安装rpm包,包含: samba-2.2.7a-7.9.0.i386.rpm, samba-client-2.2.7a-7.9.0.i386.rpm, samba-common-2.2.7a-7.9.0.i386.rpm 全套三个安装包... 已经...
  • RPM包安装MYSQL

    万次阅读 2021-07-16 09:49:11
    基于RPM的linux发布版安装mysql的推荐方法是使用oracle提供的RPM软件包。可以从两个来源获取他们。 从MySQL软件库中 MySQL Yum库 MySQL SLES库 https://dev.mysql.com/downloads/mysql/ 注意:其他供应商也提供...

    基于RPM的linux发布版安装mysql的推荐方法是使用oracle提供的RPM软件包。可以从两个来源获取他们。

    • 从MySQL软件库中
    1. MySQL Yum库
    2.  MySQL SLES库

    注意:其他供应商也提供mysql的RPM发布版。它们在功能、能力和设置等方面可能与oracle创建的RPM不同,本文中的安装说明不一定适用于它们。

    MYSQL RPM包

            Mysql免费版RPM 包

    包名称

    摘要

    mysql-community-server

    数据库服务器及相关工具

    mysql-community-client

    MySQL客户端应用和工具

    mysql-community-common

    服务器和客户端库的普通文件

    mysql-community-devel

    开发MySQL数据库客户端应用程序的头文件和库

    mysql-community-libs

    MySQL数据库客户端应用程序的共享库

    mysql-community-libs-compat

    用于以前安装的MySQL的共享兼容性库

    mysql-community-embedded

    MySQL嵌入式库

    mysql-community-embedded-devel

    嵌入式开发MySQL数据库客户端应用程序的头文件和库

    mysql-community-test

    MySQL服务器的测试套件

    Mysql企业版RPM 包

    Package Name

    Summary

    mysql-commercial-backup

    MySQL Enterprise Backup (added in 8.0.11)

    mysql-commercial-client

    MySQL client applications and tools

    mysql-commercial-common

    Common files for server and client libraries

    mysql-commercial-devel

    Development header files and libraries for MySQL database client applications

    mysql-commercial-embedded-compat

    MySQL server as an embedded library with compatibility for applications using version 18 of the library

    mysql-commercial-libs

    Shared libraries for MySQL database client applications

    mysql-commercial-libs-compat

    Shared compatibility libraries for previous MySQL installations; the version of the libraries matches the version of the libraries installed by default by the distribution you are using

    mysql-commercial-server

    Database server and related tools

    mysql-commercial-test

    Test suite for the MySQL server

    RPM包的命名符合以下语法规则:

    packagename-version-distribution-arch.rpm

    distribution 和arch 表示RPM包针对linux发布版和处理器类型。有关distribution 标识的列表,请参见下表:

    Distribution Value

    Intended Use

    el6el7, and el8

    Red Hat Enterprise Linux/Oracle Linux/CentOS 6, 7, and 8

    fc29 fc30

    Fedora 29 and 30

    sles12

    SUSE Linux Enterprise Server 12

    使用以下命令查看rpm包中的所有文件(例如,mysql-community-server):

    rpm -qpl mysql-community-server-version-distribution-arch.rpm

    一些包之间存在依赖关系。如计划安装多个软件包,则下载RPM的tar文件就可以了,它包含上面列出的所有rpm软件包。

    在大多数情况下,需要安装mysql-community-server、mysql-community-client、mysql-community-libs、mysql-community-common和mysql-community-libs-compat包来获得一个功能正常的标准mysql安装。

    要执行这种标准的基本安装,则转到包含所有这些包的目录下(最好没有其他名称相似的rpm包),并执行以下命令:

    yum install mysql-community-{server,client,common,libs}-*

    在SLES平台用zypper替换yum,在Fedora用dnf替换fedora。

    使用yum这样的高级包管理工具来安装包更便捷,但也可以用rpm -uvh命令替换yum安装命令;因为安装过程可能会遇到潜在的依赖性问题,使用rpm -uvh反而会使安装过程更容易失败。

    如果仅安装客户端程序,就可以在安装的软件包列表中略过MySQL-community-server;执行以下命令:

    yum install mysql-community-{client,common,libs}-*

    在SLES平台用zypper替换yum,在Fedora用dnf替换fedora。

    使用RPM包默认安装mysql会在系统目录下创建文件和资源,如下表所示:

    Files or Resources

    Location

    Client programs and scripts

    /usr/bin

    mysqld server

    /usr/sbin

    Configuration file

    /etc/my.cnf

    Data directory

    /var/lib/mysql

    Error log file

    对于RHEL, Oracle Linux, CentOS or Fedora 平台:/var/log/mysqld.log

    对于SLES: /var/log/mysql/mysqld.log

    Value of secure_file_priv

    /var/lib/mysql-files

    System V init script

    对于RHEL, Oracle Linux, CentOS or Fedora 平台:/etc/init.d/mysqld

    对于 SLES: /etc/init.d/mysql

    Systemd service

    对于 RHEL, Oracle Linux, CentOS or Fedora 平台: mysqld

    对 SLES: mysql

    Pid file

    /var/run/mysql/mysqld.pid

    Socket

    /var/lib/mysql/mysql.sock

    Keyring directory

    /var/lib/mysql-keyring

    Unix manual pages

    /usr/share/man

    Include (header) files

    /usr/include/mysql

    Libraries

    /usr/lib/mysql

    Miscellaneous support files (for example, error messages, and character set files)

    /usr/share/mysql

    安装还会在系统上创建一个名为mysql的用户和一个名为mysql的组。

    mysql不会在安装过程结束时自动启动。对于Red Hat Enterprise Linux、oracle linux、centos和fedora系统,使用以下命令启动mysql:

    systemctl start mysqld

    对于SLES系统,命令是相同的,但是服务名称不同:

    systemctl start mysql

    如果操作系统启用了systemd,则应使用标准systemctl(相反的,使用service)命令(如停止、启动、状态和重新启动)来管理mysqlserver服务。默认情况下,mysql服务是开机启动的。

    在升级时,如果MYSQL server正在运行,那么MYSQL server会立刻停止运行,升级,启动。

    一个例外是:如果版本在升级过程中也发生了变化(比如社区升级到商业版,反之亦然),那么mysql服务器就不会重新启动。

    在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

    初次启动mysql(MySQL 8.0以及更高版本) 服务端后,服务端发生如下事件:

    1. 服务端初始化。
    2. SSL certificate and key文件在data目录生成。
    3.  validate_password 插件 被安装以及生效。
    4. 超级用户 'root'@'localhost' 以及密码被生成,密码存在 error log file,为了找到密码,执行以下命令

    grep 'temporary password' /var/log/mysqld.log

    在SLES平台执行以下命令:

    grep 'temporary password' /var/log/mysql/mysqld.log

    用自动产生的密码登录mysql后,应尽快修改密码。

    注意:默认安装的validate_password要求密码必须包含:大,小写字符,特殊字符,数字。密码总长度不低于8个。

    如果安装过程中出现问题,你可以在错误日志文件/var/log/mysqld.log(SLES平台/var/log/mysql/mysqld.log)中找到调试信息。

    对于某些linux发行版,可能有必要增加mysqld可用文件描述符的数量限制。

    从多个mysql版本安装客户端库

    例如,希望与链接到以前库的旧应用程序保持兼容性的情况下,可以安装多个客户端库版本。要安装旧的客户端库,使用rpm的- oldpackage选项。例如, 安装mysql-community-libs-5.5在el6系统上,该系统已经从mysql 8.0安装了libmysqlclient.21,请使用如下命令:

    rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm

    调试包

    MYSQL server的RPM包包含一个和调试包一起编译的特殊变体。当server运行时,变体执行调试和内存分配检查,并生成trace文件。要使用调试版本,使用/usr/sbin/mysqld-debug启动mysql,而不是将其作为服务或/usr/sbin/MySQL启动。

    注意:在mysql 8.0.4中,调试版本的默认插件目录从/usr/lib64/mysql/plugin更改为/usr/lib64/mysql/plugin/debug。以前,需要将plugin_dir更改为/usr/lib64/mysql/plugin/debug以用于调试版本。

    展开全文
  • linux如何查看rpm包的安装路径办法

    千次阅读 2021-02-01 08:55:56
    linux如何查看rpm包的安装路径办法rpm -qpl xxxxxx.rpm安装RPM包的时候,一般是作为...执行下面的命令rpm -ivh your-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。安装过程中...

    linux如何查看rpm包的安装路径办法

    rpm -qpl xxxxxx.rpm

    安装RPM包的时候,一般是作为“root”登陆。

    查询RPM的命令可用:> man rpm

    一.如何安装rpm软件包

    rmp软件包的安装可以使用程序rpm来完成。执行下面的命令

    rpm -ivh your-package.rpm

    其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

    安装过程中可能出现下面的警告或错误?

    ... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有

    的文件,缺省时这样的情况下是无法正确安装的可以用

    rpm --force -i your-package.rpm强制安装即可(最好不要,除非你清楚你在做什么)

    ... is needed by ...

    ... is not installed ... 此包需要的一些软件你没有安装可以用

    rpm --nodeps -i your-package.rpm来忽略此信息(最好不要,除非你清楚你在做什么)

    也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题(最好不要,除非你清楚你在做什么),什么包

    都能安装上,但这种强制安装的软件包不能保证完全发挥功能

    二.如何安装.src.rpm软件包

    有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时

    需要进行编译。这类软件包有两种安装方法,

    方法一:(以Qomo0.7和redflag7为例)

    1.执行rpm -i your-package.src.rpm

    2. cd /root/rpmbuild/SPECS

    3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件

    4. cd /root/rpmbuild/BUILD/your-package/ 一个和你的软件包同名的目录

    5. ./configure 这一步和编译普通的源码软件一样,可以加上参数

    6. make

    7. make install

    方法二:(以Qomo0.7和redflag7为例)

    1.执行rpm -ivh you-package.src.rpm

    2. cd /root/rpmbuild/SPECS

    前两步和方法一相同

    3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件(顺利的话,你不会遇到BuildRequires;但是即使遇到,也不用害怕,差什么,就yum install什么;如果yum install没有,就找个它的.src.rpm包,再按照方法二的方法循环搞定,ok,要有点耐心,有时要打很多rpm包,也可能中途遇到搞不定的问题,半途而废,前功尽弃,就算学习打包把)

    这时,在/root/rpmbuild/RPMS/i386/(根据具体包的不同或系统不同,也可能是i686,noarch等等,如Everest0.5-0.6系列)

    /root/rpmbuild/RPMS/noarch

    在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

    执行rpm -ivh /root/rpmbuild/RPMS/i386/new-package.rpm即可安装完成。

    三.如何卸载rpm软件包

    使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm

    比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:

    rpm -e proftpd-1.2.8-1.i386

    rpm -e proftpd-1.2.8-1

    rpm -e proftpd-1.2.8

    rpm -e proftpd-

    rpm -e proftpd

    不可以是下列格式:

    rpm -e proftpd-1.2.8-1.i386.rpm

    rpm -e proftpd-1.2

    rpm -e proftpd-1

    有时会出现一些错误或者警告:

    ... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载

    可以用rpm -e --nodeps强制卸载(最好不要,除非你清楚你在做什么)

    四.如何不安装但是获取rpm包中的文件(有时我们需要RPM包中的某个文件,如何解压RPM包呢?)

    使用工具rpm2cpio和cpio

    rpm2cpio xxx.rpm | cpio -vi

    rpm2cpio xxx.rpm | cpio -div your-package.rpm

    rpm2cpio xxx.rpm | cpio -idmv

    rpm2cpio xxx.rpm | cpio --extract --make-directories

    参数i和extract相同,表示提取文件。v表示指示执行进程

    d和make-directory相同,表示根据包中文件原来的路径建立目录

    m表示保持文件的更新时间。

    五.如何查看与rpm包相关的文件和其他信息

    下面所有的例子都假设使用DarkAngel打的网际快车软件包Flashget-1.0-4.i386.rpm为例

    (1).我的系统中安装了那些rpm软件包

    rpm -qa 将列出系统所有安装的rpm包

    如果要查找所有安装过的包含某个字符串Flash的软件包

    rpm -qa |grep Flash

    (2).如何获得某个软件包的文件全名

    rpm -q Flashget 可以获得系统中安装的mysql软件包全名,从中可以获得

    当前软件包的版本等信息。这个例子中可以得到信息Flashget-1.0-4.i386

    (3).一个rpm包中的文件安装到那里去了?

    rpm -ql 包名

    注意这里的是不包括.rpm后缀的软件包的名称

    也就是说只能用Flashget或者Flashget-1.0-4.i386而不是Flashget-1.0-4.i386.rpm。

    如果只是想知道可执行程序放到那里去了,也可以用which,比如

    which Flashget

    (4).一个rpm包中包含那些文件(还没有安装的rpm包,想看看他要装到那去)

    一个没有安装过的软件包,使用rpm -qlp ****.rpm

    maybe the path had been difined in rpm

    一个已经安装过的软件包,还可以使用rpm -ql ****.rpm

    (5).如何获取关于一个软件包的版本,用途等相关信息?

    一个没有安装过的软件包,使用rpm -qip ****.rpm

    一个已经安装过的软件包,还可以使用rpm -qi ****.rpm

    (6).某个程序是哪个软件包安装的,或者哪个软件包包含这个程序(只适用与可执行的程序)

    rpm -qf `which 程序名` 返回软件包的全名

    rpm -qif `which 程序名` 返回软件包的有关信息

    rpm -qlf `which 程序名` 返回软件包的文件列表

    注意,这里不是引号,而是`,就是键盘左上角的那个键。

    也可以使用rpm -qilf,同时输出软件包信息和文件列表

    (7).某个文件是哪个软件包安装的,或者哪个软件包包含这个文件

    注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以

    用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。

    首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:

    # whereis ftptop

    ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz

    # rpm -qf /usr/bin/ftptop

    proftpd-1.2.8-1(注意路径)

    # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt

    proftpd-1.2.8-1

    总结:

    获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如

    i 表示info,获得软件包的信息;

    l 表示list,获得文件列表;

    a 表示all,在所有包中执行查询;

    f 表示file,根据文件进行相关的查询;

    p 表示package,根据软件包进行查询

    需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生

    六.关于rpm软件包的一些相关知识

    1.什么是rpm

    rpm 即RedHat Package Management,是RedHat的发明之一

    2.为什么需要rpm

    在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的

    程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,

    配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个

    较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统

    以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载

    3.是不是所有的linux都使用rpm

    任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门

    但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译,

    所以有可能在别的系统上也使用rpm

    除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包,

    slakware也都有自己的包管理系统

    4.rpm包的文件名为什么那么长

    rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。

    比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字

    1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示

    用于intel x86平台,还可能是sparc等。

    5.软件包文件名中的i386,i686是什么意思

    rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构

    的信息。

    i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)

    i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32)

    noarch指这个软件包于硬件架构无关,可以通用。

    i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在

    x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少

    用,通常配置的机器都可以使用i686软件包

    6.不同操作系统发行的rpm包可否混用?

    对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。

    对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同

    系统下安装。

    7.使用rpm时遇到的一些特殊问题

    Q: 我用rpm -e **.rpm无法删除rpm包

    A: 包名不要包括rpm,

    rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm

    Q: 在MS的系统下有没有读RPM文件的工具?

    A: wincmd with rpm plugins.....

    Q: 是否可以通过ftp安装安装升级rpm包?

    A: 可以。rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM

    也可用yum install

    Q: rpm安装时已有的包版本过高怎么办?

    A: 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要

    安装的包依赖的一些文件会找不到。这时有两种解决办法,

    第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到

    需要的目录下。

    第二是下载安装新版本的软件包。

       ea71b7d3073b72e9be6941ab197169fc.gif

    展开全文
  • 1. rpm包下载 我们使用yum install命令的时候一般下载下来会直接安装,但是如果我们只想下载rpm包而不安装该怎么做呢? 安装 yum-utils yum install yum-utils -y 查看yum-utils包里的命令 rpm -ql yum-utils ...
  • mysql5.1.7-rpm for linux

    热门讨论 2014-03-08 19:32:52
    linux下mysql rpm安装包,欢迎下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 631,119
精华内容 252,447
关键字:

rpm