`

rpm包指定安装路径

 
阅读更多

rpm包一般都有默认的安装路径,如何你要更改默认路径,有没有办法呢?当然有。我们来看下面的例子。
比如在安装JDK (Java Development Kit)或JRE (Java Runtime Environment)时,这个RedHat package文件的默认安装路径是/usr/java。如果你要安装在其它路径下,例如要放到/home/java目录下,该如何做呢?
一、首先查看rpm包的详细信息
[root@Oracle ~]# rpm -qpi jdk-6u43-linux-amd64.rpm
Name        : jdk                          Relocations: /usr/java
Version    : 1.6.0_43                          Vendor: Oracle and/or its affiliates.
Release    : fcs                          Build Date: Fri 01 Mar 2013 09:03:27 PM CST
Install Date: (not installed)              Build Host: jb6-lin-amd64.sfbay.sun.com
Group      : Development/Tools            Source RPM: jdk-1.6.0_43-fcs.src.rpm
Size        : 127075557                        License: Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. Also under other license(s) as shown at the Description field.
Signature  : (none)
Packager    : Java Software <jre-comments@java.sun.com>
URL        : http://www.oracle.com/technetwork/java/javase/overview/index.html
Summary    : Java(TM) Platform Standard Edition Development Kit
Description :
The Java Platform Standard Edition Development Kit (JDK) includes both
the runtime environment (Java virtual machine, the Java platform classes
and supporting files) and development tools (compilers, debuggers,
tool libraries and other tools).


The JDK is a development environment for building applications, applets
and components that can be deployed with the Java Platform Standard
Edition Runtime Environment.


这个JDK是默认要装在/usr/java 下的。

 

下面我们这样来设置参数,就可以把JDK装在你指定的目录下。
[root@linuxidc ~]# rpm -i --badreloc --relocate /usr/java=/home/java jdk-6u43-linux-amd64.rpm
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
ln: creating symbolic link `/usr/java/jdk1.6.0_43': No such file or directory
参数释义:
badreloc是强制把文件安装到你想要的地方。
relocate就是只把应该装到oldpath下的文件安装到newpath,实现将一部分文件安装到其它的路径,而不是把所有的这个包的文件都替换。
但是无论是prefix还是relocate都不见得可以真正可以用,因为有的包或者文件不允许装到其他路径,比如oracleasm-support-2.1.8-1.el6.x86_64.rpm


[root@oracle ~]# rpm -qpi oracleasm-support-2.1.8-1.el6.x86_64.rpm
warning: oracleasm-support-2.1.8-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Name        : oracleasm-support            Relocations: (not relocatable)
Version    : 2.1.8                            Vendor: Oracle Corporation
Release    : 1.el6                        Build Date: Sat 09 Feb 2013 06:46:49 AM CST
Install Date: (not installed)              Build Host: ca-build44.us.oracle.com
Group      : System Environment/Kernel    Source RPM: oracleasm-support-2.1.8-1.el6.src.rpm
Size        : 221696                          License: GPL
Signature  : RSA/8, Sat 09 Feb 2013 06:50:30 AM CST, Key ID 72f97b74ec551f03
Packager    : Joel Becker <joel.becker@oracle.com>
URL        : http://oss.oracle.com/projects/oracleasm/
Summary    : The Oracle Automatic Storage Management support programs.
Description :
Tools to manage the Oracle Automatic Storage Management library driver


not relocatable不能重定位,是无法修改安装目录的,只有去掉 --prefix参数了。


[root@linuxidc ~]# java -version
-bash: /usr/bin/java: No such file or directory
这时没有显示JAVA版本号,是因为环境变量还没修改。
下面修改一下JAVA的环境变量
[root@linuxidc jdk1.6.0_43]# vi /etc/profile
JAVA_HOME=/home/java/jdk1.6.0_43
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
"/etc/profile" 85L, 1961C written


[root@linuxidc jdk1.6.0_43]# source /etc/profile
使环境变量生效。
再查看,就有JAVA版本号显示了。
[root@linuxidc jdk1.6.0_43]# java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

 


补充一下:
在安装JDK时,需要查看一下原系统是否有其他的JAVA版本号,如果跟你要装的不一致,请卸载后再装。
[root@linuxidc ~]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
进行查找
[root@linuxidc ~]# rpm -aq |grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
强制卸载
[root@linuxidc ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
[root@linuxidc ~]# rpm -aq |grep java
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
[root@linuxidc ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
再检查,发现已卸载干净。
[root@linuxidc ~]# java -version
-bash: /usr/bin/java: No such file or directory

 

RPM包创建入门  http://www.linuxidc.com/Linux/2015-02/113559.htm

如何在Linux中创建RPM包?  http://www.linuxidc.com/Linux/2012-05/60278.htm

制作自己的rpm包 http://www.linuxidc.com/Linux/2013-06/86435.htm

Linux 下rpm安装后的目录结构和一些配置 http://www.linuxidc.com/Linux/2013-06/85761.htm

rpm与yum的综合性介绍与示例演示 http://www.linuxidc.com/Linux/2013-05/84480.htm

Redhat Linux---rpm 命令详解 http://www.linuxidc.com/Linux/2013-03/81971.htm

使用FPM轻松制作RPM包 http://www.linuxidc.com/linux/2014-06/103019.htm

 

参考至:http://www.linuxidc.com/Linux/2015-05/117967.htm

如有错误,欢迎制作

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    Linux RPM 包安装

    - `rpm -q /path/to/file`:检查指定路径下的文件是否属于某个RPM包。 **3. 查询软件包信息** - `rpm -qi file`:显示软件包的详细信息。 - `rpm -ql file`:列出软件包中包含的所有文件路径。 - `rpm -qf /etc/...

    rpm包安装相关命令

    ### rpm包安装相关命令详解 在Linux环境中,`rpm`(Red Hat Package Manager)是管理软件包的强大工具,它不仅支持软件包的安装、卸载、升级,还提供了丰富的查询功能。以下是对rpm命令中涉及的关键操作的深入解析...

    tomcat打成rpm包运行.zip

    RPM包是一种在Linux系统中广泛使用的软件包管理格式,它允许用户轻松安装、升级和卸载软件。本示例中,我们将深入探讨如何将Tomcat服务打包成RPM包,并在Linux环境下运行。 首先,理解RPM打包的基本流程至关重要。...

    rpm包的安装、删除、效验、查询

    - 使用`rpm -ivh &lt;package&gt;.rpm`安装指定的rpm包。 - 其中`-i`表示安装,`-v`显示详细信息,`-h`显示进度条。 2. **忽略依赖关系安装**: - 如果遇到依赖问题,可以使用`--nodeps`选项强制安装,即`rpm -ivh --...

    CentOS7使用rpm包安装mysql 5.7.18

    说明 本文写于2017-05-20,使用MySQL-5.7.18...1、查看已安装的MariaDB相关rpm包。 rpm -qa | grep mariadb 2、查看已安装的MariaDB相关yum包,包名需根据rpm命令的结果判断。 yum list mariadb-libs 3、移除已安装

    国产麒麟系统KylinOS 安装MySQL 8.0-RPM包安装操作手册

    国产麒麟系统KylinOS 安装MySQL 8.0-RPM包安装操作手册 在国产麒麟系统KylinOS环境下安装MySQL 8.0-RPM包需要按照以下步骤进行操作。 检查是否有mysql残留 在安装MySQL之前,需要检查服务器是否已经安装了mysql。...

    适用于 centos7安装的 bpftrace工具rpm包

    在CentOS 7上安装bpftrace,你需要先确保系统已经安装了EPEL(Extra Packages for Enterprise Linux)存储库,因为bpftrace的RPM包通常不在默认的CentOS仓库中。你可以通过以下命令安装EPEL: ```bash sudo yum ...

    用rpmbuilder打rpm包

    在Linux系统中,RPM(Red Hat Package Manager)是一种广泛使用的软件包管理器,用于安装、升级、查询和卸载软件。RPM包是遵循RPM格式的软件包,它们...同时,理解RPM包的构建过程也有助于调试和维护软件的安装过程。

    Linux软件安装rpm包的管理.pdf

    b) 安装、升级、卸载rpm软件包:使用rpm命令的-i选项来安装新的rpm包,-e来卸载指定的软件包,-U来升级软件包,-F来仅更新已安装的软件包。选项-h用于显示安装进度,-v用于显示详细信息,--force用于强制安装,--...

    linuxRPM包管理及linux for QQ的安装过程

    Linux RPM 包管理及 Linux for QQ 的安装过程 Linux RPM 包管理是 Linux 操作系统中的一种软件包管理机制,用于安装、卸载和管理软件包。RPM(Red Hat Package Manager)是 Linux 中的一种软件包管理工具,能够对...

    linux安装rpm包

    配置阶段,通过运行`./configure`命令,指定安装路径和其他依赖项。接着,使用`make`编译源代码,最后用`make install`将编译好的软件安装到系统中。 实验中还强调了依赖包的处理,当源码包安装时可能需要其他依赖...

    centos/redhat离线安装gcc及其依赖的rpm包

    标题提到的是离线安装GCC(GNU Compiler Collection)及其依赖的RPM包,这在没有网络连接或者网络环境不稳定的情况下非常实用。 GCC是开源的编译器集合,用于将C、C++、Fortran、Java等多种编程语言的源代码编译成...

    自动化部署必备技能-定制化RPM包.docx

    接下来,可以使用FPM来构建RPM包,指定源类型为dir,目标类型为rpm,包名为nginx,版本号为1.6.3,并设置相关的依赖、安装路径等参数。这样,一个定制的Nginx RPM包就完成了,可以通过YUM仓库在服务器上自动化安装。...

    CentOS7 1804 OpenSSH8.3p1打包RPM、安装升级记录(含源码包、RPM包).7z

    生成的RPM文件会在指定的build目录下,包括`openssh-clients-8.3p1-1.el7.centos.x86_64.rpm`、`openssh-server-8.3p1-1.el7.centos.x86_64.rpm`等,这些RPM包可以用于安装OpenSSH的不同组件。 安装RPM包: ```bash...

    如何将Nginx源码包制作成RPM包.doc

    总结来说,将Nginx源码包制作成RPM包的过程主要包括:安装`rpm-build`工具,设置`rpmbuild`目录结构,准备源码和spec文件,创建并编辑spec文件,安装依赖,然后使用`rpmbuild`命令生成RPM包。这样做可以使得Nginx...

    linux离线安装perl需要rpm

    可以使用`perlbrew`这样的工具来管理多个Perl版本,或者在安装时指定特定的安装路径。 总的来说,离线安装Perl在Linux中虽然需要更多的手动工作,但只要正确处理依赖关系并遵循正确的步骤,就能成功完成安装。这个...

    nginx-离线安装rpm依赖

    5. **安装RPM包**:现在,你可以使用`yum install`命令来安装Nginx及其依赖,指定你的本地仓库路径。例如: ```bash yum --disablerepo=* --enablerepo=nginx-repo install nginx ``` 6. **处理冲突和依赖问题*...

    rpm打包及企业YUM仓库构建

    3. **自定义RPM包 + YUM仓库**:这是一种结合前两者优点的方法,通过将软件编译后制作成定制化的 RPM 包,并搭建内部的 YUM 仓库,最后通过 YUM 进行安装。这种方法既保证了灵活性,又解决了依赖问题。唯一的可能...

    Linux_Oracle客户端全部rpm包

    这通常涉及到创建一个repo配置文件,并指定rpm包所在的路径。例如,创建一个名为`oracleclient.repo`的文件,内容如下: ``` [oracleclient] name=Oracle Client Repository baseurl=file:///path/to/your/...

    centos7.4.1708 的tcpdump的rpm包及其依赖

    因此,本资源提供了在该版本CentOS中通过`yum`命令下载的TCPDump RPM包及其相关依赖,确保用户能够顺利安装并使用TCPDump。 TCPDump的工作原理是监听网络接口上的数据包,并将这些数据包的信息以人类可读的形式打印...

Global site tag (gtag.js) - Google Analytics