TL; DR使用Miniconda,conda-forge非常棒 .

我已经尝试了很长时间让一个包管理器在CentOS上运行良好但没有成功 . 我能做的最好的事情是在具有root访问权限的另一个CentOS上的正确位置安装Gentoo前缀,然后将整个安装的 .tar.xz scp到目标服务器(只有这样才能获得Gentoo前缀的正确gcc) . 我可以在目标服务器上使用 emerge (构建和安装)软件包,但仍然遇到本地和权限问题 .

我最近使用conda实现了一些有趣的软件包的用户安装 . 以下是如何从命令行安装它:

curl "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" | sh

如果像我一样,您的主文件夹托管在远程驱动器(网络文件系统)上,您可能不希望将其安装在您的主文件夹中,因此您可能希望使用类似 mkdir /var/tmp/lo 的内容,然后在 /var/tmp/lo/da 期间指定安装文件夹 . 安装 .

您还会被提示添加,例如 /var/tmp/lo/da/bin 到您的.bashrc中的PATH,但是当你进入服务器时,你会得到一个登录shell,所以你的 .bashrc 不需要使用你的 .bash_profile / .bash_login / .profile (见bash documentation about startup files)添加该行或来源 .bashrc .

然后你可以安装相当多的软件包,但可能不是你想要的所有软件包 . 大多数情况下,如果它不在默认通道中,它将在 conda-forge 中 . 您可以在 https://anaconda.org/search?q= 查看现有包裹

gcc conda install gcc

zlib conda install zlib

make conda install make

cmake conda install cmake

git conda install git

fish conda install -c conda-forge fish

zsh conda install -c ActivisionGameScience zsh

tmux conda install -c conda-forge tmux

这个tmux有一个它使用的ncurse库名称的错误 . 您可以通过转到 da/lib 文件夹和符号链接 ln -sT libtinfow.so.6.1 libtinfo.so.6 来解决它

我在conda之后尝试使用的其他包管理器:

Linuxbrew

我认为,安装homebrew(linuxbrew)会很容易,但是它们的源代码很麻烦并且使用硬编码的绝对路径到ruby解释器,这会因为它不是最后一个版本而失败,等等等我给了起来 .

尼克斯

Nix仍然要求您使用/ nix文件夹 . 他们也对它进行了硬编码,并且在安装过程中每次下载时都很难正确地进行编码(更不用说更新了) .

Gentoo前缀

我希望Gentoo Prefix更容易直接安装,因为我们可以在目标服务器上使用gcc . - 好的,我尝试过但在安装过程中遇到了权限错误(2018-09-28):

portage.exception.OperationNotPermitted: chown(b'~/gentoo/tmp/var/tmp/portage/sys-apps/gentoo-functions-0.12/image/var', 2000, 2000)

PkgSrc

我现在要试试pkgsrc . - 如果在CentOS 6上使用(较旧的)版本64位EL 6.x,或者遇到与7.x版本一起遇到(G)LibC版本问题 . - 没有运气,pkgsrc硬代码 /usr/pkg/sbin 和 /usr/pkg/bin . 所以它可以't be used as user, unless maybe setting up a fakechroot environment. But I' ve从来没有这样做,我期待可用性问题 .

如果您成功安装了任何其他软件包管理器,请发表评论/回答 .