如何在没有 root 权限的情况下在空的 ubuntu 中使用可工作的编译器

如何在没有 root 权限的情况下在空的 ubuntu 中使用可工作的编译器

我正在尽我所能,在全新安装的 ubuntu 上安装一个可以工作的编译器,而无需访问机器上的 root 权限(我的用户也不在列表中sudoers)。对我来说,这完全不是一件容易的事。我找不到任何gcc适用于 ubuntu(或一般的 linux)的可移植版本,也找不到任何创建它的秘诀。

因为在新安装的 ubuntu 上你甚至没有make,也没有编译器来构建它,至少我发现我可以使用(当然,它不需要,因为它只下载 deb 包)下载make-x.xx.deb文件,使用(不起作用......)提取它并手动指向提取的二进制文件。apt-get download makesudodpkg -xdpkg -i --force-not-sudo

我尝试了同样的操作,也下载了所有需要下载的gcc软件包。apt-get install毫不奇怪,它不起作用。甚至在 PATH、LD_LIBRARY_PATH、LIBRARY_PATH、COMPILER_PATH 中添加许多文件夹也不起作用。修复了一个又一个问题,最后使用路径技巧无法克服的错误是/usr/bin/ld: cannot find /usr/lib/x86_64-linux-gnu/libmvec_nonshared.a

正如我所料,gcc编译器被硬编码为在我无法写入任何内容的地方查找至少一个库(/usr/lib/...)。也许还有其他我不知道的库稍后会失败。

我还尝试从 LLVM 网站下载预构建的二进制文件clang。问题是,如果未gcc安装任何文件,clang 编译器将完全无法使用。我可以让它查找gcc从上面的 .deb 文件中提取的标头,但最终失败了,因为它无法ld在系统上找到用于链接阶段的可执行文件(我不得不gcc从路径中手动删除以解决其他问题)。

所以我来这里,寻求建议:如何在没有管理员权限的情况下在 ubuntu 上安装 gcc(或任何其他合适的编译器/构建环境)?我认为这个问题还没有解决 [火上浇油,在 Windows 上很容易,只需从官方网站下载几个就可以]。

我想到的唯一想法是在另一台我有管理员权限的相同机器上构建它,使用--prefix--disable-shared开关,并找到一个合理的位置将生成的包(经过处理后tar.gz)在线存储。但生成的脚本没有合法,当您看到它要从一个未知的个人网站下载编译器时......

答案1

最后,我终于知道了一种方法,可以在新安装的 ubuntu 上安装 make+gcc,而无需管理员权限,而不必疯狂地编写自己的 bash 脚本来从 .deb 文件中提取。我只需要依靠 conda!

一、安装miniconda(不需要权限)

其次,使用 conda 安装 make、gcc……(所有这些都可以在 anaconda 官方频道上找到!)。

相关内容