wir*_*din 18 rpm rhel software-installation home not-root-user
I want to install Git locally to a user on a RHEL server (I don't have root access) What would be your cleanest/ most organized way of installing software to a local user account?
drs*_*drs 18
有一些方法可以使用 将 rpm 安装在用户目录中rpm
,但我认为这不是直接的。我不相信有办法使用yum
.
我的标准做法是从源代码编译到local
我家中的目录
$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include
Run Code Online (Sandbox Code Playgroud)
/usr/local
当我有 root 时,我会下载源代码,例如,在~/local/git
.
编译时我将前缀设置为local
目录
$ configure --prefix=/home/user_name/local
$ make
$ make install
Run Code Online (Sandbox Code Playgroud)
然后我添加~/local/bin
到我的 $PATH 中.bash_profile
。
当然,从源代码安装的痛苦在于您无法获得自动依赖项解析。如果发现需要安装依赖,按照上面的方法编译安装即可。然后,当您 compile 时git
,您需要更新 compile 标志,以便它们在正确的位置查找依赖项的库和包含文件:
./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'
Run Code Online (Sandbox Code Playgroud)
gol*_*cks 13
.rpm 文件实际上是一种cpio
存档形式,很像.rpm 文件的简单形式tar
。该rpm2cpio
实用程序可能已安装在系统上,不需要特权即可使用;它写入标准输出,因此要转换:
rpm2cpio whatever.rpm > whatever.cpio
Run Code Online (Sandbox Code Playgroud)
有一个man cpio
您可以查看自己,但您现在要做的是在“复制”模式下将存档提供给 cpio:
cat whatever.cpio | cpio -i
Run Code Online (Sandbox Code Playgroud)
很可能这些东西被组织成一个目录树,以便文件进入适当的位置(bin 等)。如果您的密码中不存在这些文件,您将收到错误消息,但这会列出存档中的文件(您可以使用-t
/--list
开关获得相同的信息)。如果要自动创建目录,请使用-d
. 所以一个快速解压 rpm 的方法:
rpm2cpio whatever.rpm | cpio -i -d
Run Code Online (Sandbox Code Playgroud)
您可以使用它安装到 $HOME 中。唯一的问题是程序是否希望在/etc
等中找到东西,因为许多东西在编译时出于任何目的硬编码了它们的安装位置。
从源代码构建可能是更好的选择(因为您可以提供正确的位置),但是如果您可以在任何情况下都使用它,那么它既快速又简单。
此外,午夜指挥官文件浏览器 ( mc
),可能还有其他文件浏览器,将允许您导航 rpm 或 cpio(或压缩 tar 或 zip)层次结构并复制单个文件,就像解压缩存档一样(它创建一个临时文件系统以浏览其中的存档内容)。
归档时间: |
|
查看次数: |
34797 次 |
最近记录: |