我主要在我有帐户但我不是 root 用户的 linux 远程机器上工作。我从来没有真正理解这对我安装东西的能力意味着什么。
我知道pip install
如果我添加--user
. 我还看到我可以在我的 conda 环境中安装东西。
我想安装tmux
. 我看到我可以通过这样做来做到这一点,sudo apt-get install tmux
但显然我不能sudo
,因为我不是 root 用户。我可以通过其他方式安装它还是只有系统管理员才能这样做?如果是后者,为什么我可以安装一些东西而不能安装其他东西?
谢谢。
pip 用于 Python 库和诸如此类的东西,它支持在您的主目录中安装它们而无需 root。apt-get 用于 Linux 发行版的二进制包,它不支持这一点,通常你不能在没有 root 的情况下安装二进制包。
到目前为止,最简单的解决方案是让您的系统管理员或具有 root 权限的人安装 tmux,他们很容易做到。
如果你不能做到这一点并且盒子安装了编译器,你可以从源代码构建 tmux,如果你还不熟悉在 Linux 上构建 C 软件并且可能或多或少地参与其中,这将是一个大问题。依赖项已经安装,您还需要从源代码构建。
要构建 tmux 3.0a,您需要:C 编译器、make、yacc 或 bison、libevent、ncurses。
如果您有另一个与您远程使用的 Linux 机器类似的时代并且您确实拥有 root 权限的 Linux 机器,那么一个不错的选择是构建一个静态 tmux 并将 tmux 二进制文件复制到您没有 root 权限的远程主机- 这样您就可以安装使用包管理器构建所需的所有依赖项,而无需构建它们。例如,要在 Debian 机器上执行此操作,您将执行以下操作:
如果你不能这样做,并且你的远程 Linux 机器有一个编译器(检查
gcc -v
)和 yacc(尝试yacc -V
),那么你可以首先构建 ncurses 和 libevent,这里有一篇文章向你展示了如何为稍旧的 tmux 做到这一点版本 - 如果您搜索,还有许多其他文章:https ://jdhao.github.io/2018/10/16/tmux_build_without_root_priviledge/本文没有提到的是您还需要这样做export LD_LIBRARY_PATH=$HOME/local/lib
除了PATH
运行 tmux 之外,您还可以将这两个导出文件放入您的 shell 启动文件(.profile 或 .bashrc 或其他文件)中。一个好的开始是下载并解压 tmux tarball 并运行
./configure --prefix=$HOME/local
,看看会发生什么 - 如果它失败,它应该会给你一个线索,你需要构建什么,如果它成功,你可以运行make && make install
然后运行 tmux from$HOME/local/bin/tmux
.现在还分发了一个 AppImage,无需 root 访问即可使用。 https://github.com/tmux/tmux/releases