我正在参加学校的 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
并不是一个好主意。