2010-07-09 8 views
18

Tengo acceso a la computadora en una biblioteca pública y quiero probar C++ y tal vez otro código. El problema es que no hay g ++ instalado y no puedo instalarlo usando paquetes porque no tengo acceso de root. ¿Existe una forma "inteligente" de crear un entorno completo para la programación en una carpeta de inicio?Instalar gcc en Linux sin privilegios de root

Tengo instalado gcc (puedo compilar el código C). Además, tengo una carpeta de inicio que es consistente. No sé dónde encontrar g ++ precompilado, encontré solo fuente pero no sé qué hacer con ella. Traté de pedirles que instalen esto, pero no funcionó :)

+0

¿La biblioteca tiene instalado gcc? – Omnifarious

+0

Puedo compilar fuente C usando gcc. –

Respuesta

8

Puede ejecutar el script de configuración con el parámetro --prefix: ../gcc-4.5.0/configure --prefix=/home/foo/bar. Dado que es muy probable que la biblioteca estándar de C++ sea diferente a la de su sistema, debe establecer export LD_LIBRARY_PATH=/home/foo/bar/lib antes de poder iniciar un programa compilado por este compilador.

+2

Eso depende de que exista una cadena de herramientas de compilación existente para arrancar. – reece

+1

Y archivos de encabezado. – Omnifarious

+0

Intenté ./configure --prefix = ... pero me da: configure: error: no puedo encontrar install-sh, install.sh o shtool en "." "./ .." "./../ .." –

1

Una vez, hace mucho tiempo (1992 más o menos), pasé por algo similar a esto cuando compré un sistema SCO sin entorno de desarrollo. Arrastrarlo a tener un entorno de desarrollo completo fue un dolor gigantesco, y para nada fácil. Tener archivos de encabezado de biblioteca o gcc en un sistema haría su trabajo mucho más fácil.

Depende mucho de cuán desagradable ha sido la biblioteca sobre qué tipo de cosas están instaladas. Si no hay gcc allí, su trabajo se vuelve un poco más difícil. Si no hay archivos de encabezado para glibc allí, su trabajo es MUCHO más difícil.

Además, ¿obtiene una cuenta en el sistema para que tenga una carpeta de inicio que sea consistente desde el inicio de sesión hasta el inicio de sesión?

Si no tiene gcc allí, necesita encontrar un binario precompilado de gcc/g ++ e instalarlo en alguna parte. Si no tiene archivos de encabezado allí, necesita encontrar copias de esos y colocarlos en el sistema.

No hay una forma "estándar" de instalar gcc en su carpeta de inicio. Todas las soluciones van a tener que involucrarse de alguna manera.

¿Ha preguntado a los bibliotecarios si pueden cambiar lo que están instalados porque quieren aprender un poco de programación y solo tienen acceso a sus computadoras para hacerlo? Esa podría ser la solución más fácil.

De tu comentario parece que tienes gcc y si puedes compilar el código C, tienes los archivos del encabezado de la biblioteca. Así que ahora se trata de compilar tu propia versión de g++. Probablemente pueda encontrar una manera de atraer al administrador de paquetes en el sistema para que instale un paquete binario en algún lugar que no sea en una carpeta del sistema. Creo que esta solución es menos divertida que compilar la tuya, y creo que también puede haber posibles problemas sutiles, ya que el paquete instalado puede esperar encontrar cosas en lugares específicos y no encontrarlas allí.

Lo primero que debe hacer es asegurarse de haber descargado la fuente correcta para el paquete gcc. El lugar para encontrar eso es el GNU United States mirror page. Desea encontrar el archivo gcc-4.5.0.tar.bz2 o gcc-4.5.0.tar.gz en el sitio espejo que elija. Es probable que esté en un directorio gcc y una subcarpeta gcc-4.5.0.

Después de descargarlo, debe eliminarlo. En general, no debe compilar gcc en la carpeta en la que lo desencadena. Así que crea otra carpeta de hermanos que realmente quieras construir en la etiqueta gcc-build. Entonces el comando que desea es ../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'.

gcc requiere que se instalen otros paquetes para compilarse. Puede usar la misma línea --prefix para estos paquetes para instalarlos en el mismo lugar. El sitio web de gcc tiene un list of pre-requisite packages.

$HOME/.local es una especie de lugar estándar aceptado para instalaciones de cosas por usuario.

+0

Tengo gcc instalado (puedo compilar el código C). Además, tengo una carpeta de inicio que es consistente. No sé dónde encontrar g ++ precompilado, encontré solo fuente pero no sé qué hacer con ella. Traté de pedirles que instalen esto, pero no funcionó :) –

+0

@ user287655 - Agregaré este comentario a su pregunta para aclararlo aún más. – Omnifarious

+0

Pero no intente construir una nueva versión de GCC. De acuerdo con https://gcc.gnu.org/install/prerequisites.html GCC necesita un compilador de C++ 98 a menos que esté compilando GCC antes de 4.8 que permita el arranque con un compilador C89 –

0

Si tiene fakeroot, puede usarlo para establecer ~/some-path como root para instalar los paquetes. Alternativamente, puede configurar un entorno chroot para hacer lo mismo.

Dado esto, puede usar dpkg -i package.deb para instalar los paquetes de gcc en su sistema. Deberá descargar e instalar cada paquete individualmente (por ejemplo, desde el sitio web de Debian), al menos binutils, glibc, linux-headers y gcc.

Si se encuentra en otro sistema, deberá obtener los paquetes correctos para ese sistema e instalarlos utilizando el administrador de paquetes correspondiente.

7

Si desea instalarlo como un usuario local

GNU GSRC proporciona una manera fácil de hacerlo

Enlace: http://www.gnu.org/software/gsrc/

Después de la configuración, sólo tiene que especificar los siguientes comandos:

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

El segundo paso también se puede cambiar para acelerar para un sistema N-core:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN" 
+1

Recomiendo una versión estable (como 2013.07)) en lugar del tronco, descargue desde: http://ftp.gnu.org/gnu/gsrc/ – canesin

+0

¿Esto también instalará una nueva versión de lib C++ estándar? –

Cuestiones relacionadas