有网页描述了使用 apt 以非 root 用户身份安装 rpm 的方法。
本页描述了一种简单的方法使用 apt 以非 root 用户身份安装 CMS 软件 rpm. CMS 开发的脚本,
bootstrap.sh
,提供以非root用户身份使用apt进行软件安装所需的配置。
另外查看命令以及命令中提到的脚本:
针对不耐烦者的食谱(SH / BASH / ZSH):
export VO_CMS_SW_DIR=/x/y/z # E.g.: # export VO_CMS_SW_DIR=$PWD/w export LANG="C" mkdir -p $VO_CMS_SW_DIR wget -O $VO_CMS_SW_DIR/bootstrap.sh http://cmsrep.cern.ch/cmssw/cms/bootstrap.sh # export BUILD_ARCH=slc5_amd64 # (only for online) export SCRAM_ARCH=slc6_amd64_gcc491 sh -x $VO_CMS_SW_DIR/bootstrap.sh setup -path $VO_CMS_SW_DIR -arch $SCRAM_ARCH >& $VO_CMS_SW_DIR/bootstrap_$SCRAM_ARCH.log
要安装新版本:
export VO_CMS_SW_DIR=/x/y/z # E.g.: # export VO_CMS_SW_DIR=$PWD/w export LANG="C" # export BUILD_ARCH=slc5_amd64 (only for online) export SCRAM_ARCH=slc6_amd64_gcc491 source $VO_CMS_SW_DIR/$SCRAM_ARCH/external/apt/*/etc/profile.d/init.sh apt-get update apt-get install cms+cmssw+CMSSW_7_4_4 NOTE : To use cmsShow with MAC OS in an FWLite build, you need to also add the FWLite data packages. apt-get -y install cms+fwlite+CMSSW_7_4_4_FWLITE apt-get -y install cms+fwlitedata-toolfile+1.0 cms+fwlitedata+25
他们的目的是确保满足适当的依赖关系。他们使用主机的最低限度 Linux 并自行构建所有软件。由于主机的 Linux 可能已过时,因此他们不依赖于特定的 Linux 发行版。所有软件包(例如 gcc 和 python)均由他们的软件管理工具编译。
我以前从未见过这种情况,所以我想知道通常如何使用 apt 以非 root 用户身份安装 rpm?(如果您不知道,不一定是网页中的方法)。
这些方法是否通过创建某种虚拟机或其他类型的虚拟化来实现?
谢谢。
答案1
通过以非 root 用户身份“安装” RPM 包,您无法更新 RPM 数据库,因此您会错过通常依赖包管理器进行的所有操作:
- 解决依赖关系(在升级和其他系统更改期间)
- 报告(这样您就知道安装了哪些过时的 CrappySoftware TM )
- 升级
- 软件删除
从管理角度来看,如果软件包没有由 root 安装并在 RPM 数据库中注册,您实际上并没有安装它们。无论出于何种目的,您都不妨从主目录中的源代码安装,或者简单地将二进制文件复制到那里。
当您尝试在没有 root 权限的情况下安装 RPM 时,实际上就会发生后者。
RPM 包是一个容器,与 tar 或 zip 文件(实际上是 cpio 存档)不同,您可以简单地提取内容(例如使用rpm2cpio
)并获取实际的软件,而忽略包管理器通常用于正确安装的脚本和元数据……
答案2
APT 无法安装 RPM 包(以前有一个 apt-rpm 分支,用于 Linox,但我怀疑它是否在维护)。不过,您可以rpm
使用安装程序apt
,或者使用alien
将 rpm 包转换为 deb 包。
可重定位的 RPM 软件包可以安装在不同的前缀中,包括用户的主目录。在这种情况下,无需 root 权限即可完成。