Supongamos que tengo acceso ssh a algún servidor Ubuntu como usuario y necesito algunas herramientas que no sean del sistema para instalarlo por conveniencia (mc, rtorrent, mcedit). No quiero molestar a los administradores de estos pequeños programas.
¿Hay alguna manera de instalarlos (hacerlos correr) sin usar algo como sudo apt-get install
?
Respuestas:
Compile e instale en
~/bin
(y edite su.bashrc
para configurarloPATH
para incluirlo). las bibliotecas pueden compilarse e instalarse de manera similar~/lib
(configurarseLD_LIBRARY_PATH
para que apunten a ellas), y los encabezados de desarrollo pueden instalarse, por ejemplo, en~/includes
.Dependiendo de los detalles específicos de los programas que desea instalar y las bibliotecas de las que dependen, puede descargar los archivos .deb y usar '
dpkg-deb -x
' para extraerlos debajo de su directorio de inicio. A continuación, tendrá una gran cantidad de "diversión" estableciendo elPATH
,LD_LIBRARY_PATH
y otrosvariables
. Cuanto más complejo sea el programa o la aplicación que esté instalando, más divertido estará para :)Por supuesto, no podrá instalar los
setuid
archivos binarios de esta manera; se instalarán pero (dado que no tiene permiso para hacerlos rootear o establecer elsetuid
bit en ellos), solo serán archivos binarios normales de su propiedad .Del mismo modo, los demonios y los servicios del sistema que esperan ejecutarse como ciertos
UID
o tienen la capacidad de cambiar uid, o esperan que los archivos estén en su/etc
lugar,~/etc
etc., es probable que no funcionen bien, si es que funcionan.La mayoría de los administradores de sistemas se consideran
mc
ymcedit
sean inocuos, programas de "mayormente inofensivos".Sin embargo, muy pocos considerarían que instalar un cliente torrent sea inofensivo, especialmente si tienen que pagar por el ancho de banda o terminan siendo legalmente responsables. La mayoría de los administradores de sistemas probablemente no estarán del todo felices de que los usuarios finales instalen dicho software sin permiso. Pueden decir "seguro, adelante, noquear" o no ... pero debe preguntar sobre cualquier cosa que pueda causar problemas a los propietarios / administradores de la máquina.
fuente
LD_LIBRARY_PATH
es un truco malvado . ¿Esto también se aplica aquí, o he entendido mal?dpkg-deb -x
en un directorio local). Trabajado como un encanto. No tuve que hacer ningúnLD_LIBRARY_PATH
truco. Incluso si tuviera que hacerlo, lo haría en la misma línea de comando para no afectar la configuración global (por ejemplo$ LD_LIBRARY_PATH=/home/usr1/zoom/opt/zoom:/home/usr1/zoom/opt/zoom/zoom ZoomLauncher
).Necesita compilarlos desde la fuente. Debería ser solo una cuestión de
El binario se ubicaría en
~/myapps/bin
. Por lo tanto, agregueexport PATH="$HOME/myapps/bin:$PATH"
a su.bashrc
archivo y vuelva a cargar el.bashrc
archivo consource ~/.bashrc
. Por supuesto, esto supone que gcc está instalado en el sistema.fuente
Puede usar JuNest , que crea un pequeño contenedor de Linux en el directorio del usuario, donde puede instalar cualquier paquete.
fuente
Me enfrenté al mismo problema, así es como lo solucioné rápidamente, suponiendo que tenga un servidor Linux del mismo sistema operativo y arquitectura.
Instale el software en el sistema que controla
Encuentre el ejemplo ejecutable
which python
y cópielo en~/
Copie las bibliotecas con:
Transfiera el ejecutable y las bibliotecas al otro sistema donde solo tiene privilegios locales, luego ejecute lo siguiente:
Esto creará una carpeta
~/lib
para almacenar las bibliotecas, agregarla a su ruta y decirle a LD que mire las bibliotecas allí, así que solo agregue sus archivos ejecutables y las bibliotecas allí, ahora puede ejecutarlo como lo haría en otro lugarEsto puede ser muy hacky, pero es muy portátil, rápido, y todavía no he encontrado algo que no pueda ejecutar de esa manera, por supuesto, el software no puede intentar hacer cosas que necesitan acceso a la raíz, como enlazar a un puerto inferior de 1024, etc.
fuente
Estoy teniendo el mismo problema que tú. Todavía no lo he probado, pero parece que Linuxbrew puede ser útil en este tema.
fuente