Ubuntu 是否有任何机制可以在主目录内安装软件包?

Ubuntu 是否有任何机制可以在主目录内安装软件包?

我正在参加学校的 AI 竞赛,他们给我们每个人一台机器的 ssh 访问权限来设置我们的环境。我当然没有这台机器的 root 访问权限,但我想安装我自己的环境。

那么,我可以用 apt-get 在主目录中安装所需的软件包吗?还是我必须从源代码构建所有内容?

答案1

我认为最好的选择仍然是从源代码进行编译。这可能很痛苦,但至少你知道它会(或至少应该)起作用。

您也可以dpkg使用重力或者dpkg -x提取软件包的内容,但这可能取决于您尝试通过这种方式安装的内容。有些东西可能开箱即用,有些则可能不行。

您还可以查看askubuntu 上的类似问题以供进一步参考。

如果您提到了您环境中特别需要的软件包,那将会很有帮助。我想如果您提到了编程竞赛,那么您需要开发工具。通常它们非常便携,所以这应该是可行的。

答案2

dpkg通常需要 root 访问权限。您可以尝试dpkg --root ~ --force-not-root -i foo.deb使用包文件。

答案3

这是我为自己编写的小脚本。也许经过一些修改后你会发现它很有用。

#!/bin/sh
set -e

[ $# -ne 2 ] && echo "usage: $0 <pkgname> <destdir>" && exit 1

basedir=$2
aptitude download $1

for f in $1*.deb; do
  dpkg-deb -x $f $basedir
  rm $f
done

当然,如果软件包依赖于其他软件包,这种方法就不太适用了。在极少数情况下,你可以将所有需要的软件包解压到同一个目录中。

笔记~/pkg:我在没有其他东西的地方使用它。一般来说,删除所有匹配的内容$1*.deb并不是一个好主意。

相关内容