如何在没有 sudo 权限的情况下在本地安装程序?

yur*_*ura 98 software-installation not-root-user

假设我以用户身份可以通过 ssh 访问某些 Ubuntu 服务器,并且为了方便起见,我需要安装一些非系统工具(mc、rtorrent、mcedit)。我不想为这些小程序打扰管理员。

有没有办法在不使用类似的东西的情况下安装它们(让它们运行)sudo apt-get install

eof*_*eof 66

您需要从源代码编译这些。这应该只是一个问题

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
Run Code Online (Sandbox Code Playgroud)

然后二进制文件将位于~/myapps/bin. 因此,添加export PATH="$HOME/myapps/bin:$PATH"到您的.bashrc文件并.bashrc使用source ~/.bashrc. 当然,这假设系统上安装了 gcc。

  • 依赖关系呢?有没有办法自动处理它们而无需为它们中的每一个运行相同的代码? (8认同)

cas*_*cas 38

  1. 编译并安装到~/bin(并编辑您.bashrc的设置PATH以包含它)。库可以类似地编译并安装到~/lib(设置LD_LIBRARY_PATH为指向它),开发头文件可以安装到例如~/includes.

  2. 根据您要安装的程序的具体细节以及它们所依赖的库,您可以下载 .deb 文件并使用“ dpkg-deb -x”将它们解压缩到您的主目录下。然后,您将有很多“有趣”设置PATHLD_LIBRARY_PATH以及其他variables。您安装的程序或应用程序越复杂,您将获得更多乐趣:)

    当然,您将无法以setuid这种方式安装二进制文件 - 它们会安装但是(因为您无权将它们切换为 root 或setuid在它们上设置位)它们只是您拥有的普通二进制文件.

    同样,希望守护程序和系统服务运行作为一个特定的UID或有更改uid,或希望文件是在能力/etc相当~/etc,并且等等不太可能工作做好,如果在所有。

  3. 大多数系统管理员会考虑mc并认为mcedit是“基本无害”的无害程序。

    然而,很少有人会认为安装 Torrent 客户端是无害的,特别是如果他们必须支付带宽费用或最终要承担法律责任。对于最终用户未经许可安装此类软件,大多数系统管理员可能并不完全满意。他们可能会说“当然,继续,把自己打倒”,或者他们可能不会……但是您应该询问可能会给机器所有者/管理员带来问题的任何事情。

  • 我听说[设置`LD_LIBRARY_PATH`是一种邪恶的黑客](https://blogs.oracle.com/ali/entry/avoiding_ld_library_path_the)。这也适用于此,还是我误解了? (2认同)
  • 设置 LD_LIBRARY_PATH 的所有问题都适用。是的,它是或可能是一个邪恶的黑客。有时邪恶的黑客是实现特定目标所必需的......打破“规则”的关键是充分了解它们以了解它们的目的是为了让您免于什么,以及在这种特殊情况下您需要打破它们的确切原因,以及风险是什么或可能是什么。 (2认同)

niu*_*ech 8

您可以使用JuNest,它会在用户目录中创建一个小型 Linux 容器,您可以在其中安装任何软件包。