假设我以用户身份可以通过 ssh 访问某些 Ubuntu 服务器,并且为了方便起见,我需要安装一些非系统工具(mc、rtorrent、mcedit)。我不想为这些小程序打扰管理员。
有没有一种方法可以安装它们(使它们运行)而不使用类似的东西sudo apt-get install
?
答案1
您需要从源代码编译这些。这应该只是一个问题
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
然后二进制文件将位于~/myapps/bin
.因此,添加export PATH="$HOME/myapps/bin:$PATH"
到您的.bashrc
文件并.bashrc
使用source ~/.bashrc
.当然,这假设系统上安装了 gcc。
答案2
编译并安装
~/bin
(并编辑您的.bashrc
设置PATH
以包含它)。库可以类似地编译并安装到~/lib
(设置LD_LIBRARY_PATH
为指向它),并且开发头文件可以安装到例如~/includes
.根据您要安装的程序及其依赖的库的具体详细信息,您可以下载 .deb 文件并使用“
dpkg-deb -x
”将它们解压到您的主目录下。然后,您将在设置PATH
、LD_LIBRARY_PATH
和其他时获得很多“乐趣”variables
。您安装的程序或应用程序越复杂,您就会享受到更多的乐趣:)当然,您将无法以
setuid
这种方式安装二进制文件 - 它们会安装,但是(因为您无权将它们chown为root或setuid
对其进行设置)它们只是您拥有的普通二进制文件。类似地,期望以某种方式运行
UID
或能够更改 uid 或期望文件位于/etc
其中~/etc
等的守护进程和系统服务不太可能正常工作(如果有的话)。大多数系统管理员会认为
mc
它们mcedit
是“大部分无害”、无害的程序。然而,很少有人认为安装种子客户端是无害的,特别是如果他们必须支付带宽费用或最终承担法律责任。大多数系统管理员可能不会完全乐意看到最终用户未经许可安装此类软件。他们可能会说“当然,继续吧,把自己搞晕”,也可能不会……但您应该询问任何可能给机器所有者/管理员带来问题的问题。
答案3
您可以使用聚巢,它会在用户目录中创建一个小型 Linux 容器,您可以在其中安装任何软件包。
答案4
实际上有一个我今天刚刚制作的工具
https://github.com/z3r0n3t/pkget
你所需要的只是访问 bash 没有任何特殊的 root 你可以使用 whet 将其下载为 zip 文件或使用 git clone