Установите gcc на Linux без прав root - PullRequest
23 голосов
/ 09 июля 2010

У меня есть доступ к компьютеру в публичной библиотеке, и я хочу попробовать C ++ и, возможно, другой код. Проблема в том, что не установлен g ++, и я не могу установить его с помощью пакетов, потому что у меня нет root-доступа. Есть ли «умный» способ создать полноценную среду для программирования в домашней папке?

У меня установлен gcc (я могу скомпилировать код C). Кроме того, у меня есть домашняя папка, которая соответствует. Я не знаю, где найти скомпилированный g ++, я нашел только источник, но я не знаю, что с ним делать. Я пытался попросить их установить это, но это не сработало:)

Ответы [ 4 ]

9 голосов
/ 09 июля 2010

Вы можете запустить скрипт конфигурации с параметром --prefix: ../gcc-4.5.0/configure --prefix=/home/foo/bar.Поскольку весьма вероятно, что стандартная библиотека c ++ отличается от библиотеки в вашей системе, вы должны установить export LD_LIBRARY_PATH=/home/foo/bar/lib, прежде чем сможете запустить программу, скомпилированную этим компилятором.

7 голосов
/ 26 декабря 2012

Если вы хотите установить его как локальный пользователь

GNU GSRC предоставляет простой способ сделать это

Ссылка: http://www.gnu.org/software/gsrc/

После настройки просто укажитеследующие команды:

cd gsrc
make -C pkg/gnu/gcc 
make -C pkg/gnu/gcc install

Второй шаг также можно изменить, чтобы ускорить работу системы с N-ядром:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN"
2 голосов
/ 09 июля 2010

Однажды, давным-давно (в 1992 году или около того), я пережил нечто подобное, когда купил систему SCO без среды разработки. Начать его с полной среды разработки было гигантской болью, и совсем не легкой. Наличие в системе заголовочных файлов библиотеки или gcc значительно упростит вашу работу.

Это во многом зависит от того, насколько противна была библиотека о том, какие вещи установлены. Если там нет gcc, ваша работа становится немного сложнее. Если там нет заголовочных файлов для glibc, ваша работа намного сложнее.

Кроме того, у вас есть учетная запись в системе, поэтому у вас есть домашняя папка, которая соответствует входу в систему?

Если у вас нет gcc, вам нужно найти предварительно скомпилированный двоичный файл gcc / g ++ и установить его где-нибудь. Если у вас нет заголовочных файлов, вам нужно найти их копии и поместить их в систему.

Однако не существует «стандартного» способа установки gcc в вашей домашней папке. Во всех решениях будет задействовано какое-то ручное вращение.

Вы спрашивали библиотекарей, могут ли они изменить то, что установлено, потому что вы хотите немного изучить программирование и иметь доступ только к своим компьютерам, чтобы делать это? Это может быть самым простым решением.

Из вашего комментария кажется, что у вас есть gcc, и если вы можете скомпилировать код на C, у вас есть файлы заголовков библиотеки. Так что теперь нужно собрать собственную версию g++. Вероятно, вы могли бы найти способ побудить менеджера пакетов в системе установить бинарный пакет где-то, кроме системной папки. Я думаю, что это решение менее увлекательно, чем компиляция вашего собственного, и я думаю, что могут быть и тонкие проблемы, так как этот установленный пакет может ожидать, что найдет вещи в определенных местах и ​​не найдет их там.

Первое, что нужно сделать, это убедиться, что вы скачали правильный источник для пакета gcc. Здесь можно найти зеркальную страницу GNU United States . Вы хотите найти файл gcc-4.5.0.tar.bz2 или gcc-4.5.0.tar.gz на выбранном вами зеркальном сайте. Скорее всего, он будет в каталоге gcc и подпапке gcc-4.5.0.

После того, как вы загрузили это, вы должны распаковать его. В общем случае вы не должны собирать gcc в папку, в которую вы его распаковываете. Поэтому создайте еще одну дочернюю папку, в которую вы действительно хотите создать ее, с пометкой gcc-build. Тогда вам нужна команда ../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'.

gcc требует установки некоторых других пакетов, чтобы иметь возможность компилировать себя. Вы можете использовать одну и ту же строку --prefix для этих пакетов, чтобы установить их в одном месте. На сайте gcc есть список обязательных пакетов .

$HOME/.local является своего рода стандартным приемлемым местом для пользовательских установок.

0 голосов
/ 09 июля 2010

Если у вас есть fakeroot, вы можете использовать это, чтобы установить ~ / some-path как root для установки пакетов.В качестве альтернативы, вы можете настроить среду chroot, чтобы сделать то же самое.

После этого вы можете использовать dpkg -i package.deb для установки пакетов gcc в вашей системе.Вам нужно будет загрузить и установить каждый пакет по отдельности (например, с сайта Debian) - не менее binutils, glibc, linux-headers и gcc.

Если вы работаете в другой системе,вам нужно будет получить нужные пакеты для этой системы и установить их с помощью соответствующего менеджера пакетов.

...