Я стараюсь изо всех сил иметь работающий компилятор на новой установке Ubuntu, не имея доступа к корневым привилегиям на машине (моего пользователя также нет в списке sudoers
). Для меня это совершенно нетривиально. Я не могу найти ни портативного gcc
для Ubuntu (или Linux в целом), ни какой-либо рецепт для его создания.
Так как в недавно установленной Ubuntu у вас даже нет make
, и нет компилятора для его сборки, по крайней мере я обнаружил, что могу загрузить файл make-x.xx.deb
с помощью apt-get download make
(он не конечно, требуют sudo
, поскольку он просто загружает пакет deb), извлекаем его с помощью dpkg -x
(dpkg -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/...
). Может быть, есть и другие, о которых я не знаю, которые позже потерпят неудачу.
Я также пытался загрузить готовый двоичный файл clang
с веб-сайта LLVM. Проблема в том, что компилятор clang без установленного gcc
полностью не работает. Я могу взглянуть на заголовки gcc
, извлеченные из файлов .deb выше, но, в конце концов, происходит сбой, потому что не удается найти исполняемый файл ld
в системе для этапа компоновки (мне пришлось удалить извлеченный вручную gcc
с пути для других проблем).
Итак, я спрашиваю предложения: как установить gcc (или любую другую достойную среду компилятора / сборки) в Ubuntu без прав администратора? Я не могу думать, что это еще не решено как проблема [подлить масла в огонь, на окнах легко и возможно с парой загрузок с официальных сайтов].
Единственная идея, которую я придумал, - это собрать ее на другой идентичной машине, на которой у меня есть права администратора, с помощью переключателей --prefix
и --disable-shared
, и найти разумное место для хранения полученного пакета (после tar.gz
лечение) онлайн. Но полученный скрипт не выглядит правдоподобным, когда вы видите, что он собирается загрузить компилятор с неизвестного личного сайта ...
Наконец, я получил уведомление о способе установки без прав администратора make + gcc на только что установленную Ubuntu, без необходимости сводить с ума при написании собственных сценариев bash для извлечения из файлов .deb. Мне просто нужно было положиться на conda!
Во-первых, установить miniconda (не требует привилегий)
Во-вторых, использовать conda для установки make, gcc, ... (все доступно на официальном сайте anaconda). канал тоже!).