A veces me encuentro con software que no se ofrece .deb
o .rpm
solo como un ejecutable.
Por ejemplo, Visual Studio Code , WebStorm o Kerbal Space Programm .
Para esta pregunta, tomaré Visual Studio Code como punto de referencia.
El software se ofrece como un paquete comprimido.
Al descomprimir, me queda una carpeta llamada VSCode-linux-x64
que contiene un ejecutable llamado Code
.
Puedo hacer doble clic Code
o señalarlo con mi terminal /home/user/Downloads/VSCode-linux-x64/Code
para ejecutarlo.
Sin embargo, me gustaría saber si hay una manera adecuada de instalar estas aplicaciones.
Lo que quiero lograr es:
- un lugar donde puedo poner todas las aplicaciones / softwares que se ofrecen de esta manera (ejecutables)
- soporte de terminal (eso significa, por ejemplo: puedo escribir
vscode
desde cualquier carpeta en mi terminal y ejecutará automáticamente Visual Studio Code.
Información adicional:
- Entorno de escritorio: Gnome3
- OS: Debian
EDITAR:
decidí darle a @kba la respuesta porque su enfoque funciona mejor con mi solución de respaldo y, además, eso. Tener un script que ejecute los binarios le da la posibilidad de agregar argumentos.
Pero para ser justos, el enfoque de @ John WH Smith es tan bueno como el de @ kba.
fuente
.desktop
entrada para comenzar desde un menú o agregar configuración, descubrir indicadores de línea de comando, etc. Un alias es muy inflexible.Según TLDP ,
/opt
podría ser un buen lugar para este tipo de software. Lo he usado yo mismo para almacenar algunas herramientas relacionadas con la impresora, y la versión "dinámica" de Skype (como dijo kba, el "soporte de terminal" se puede lograr configurando laPATH
variable en consecuencia).De manera más general, tiendo a usar
/opt
para "instalar" software propietario empaquetado como ejecutable, pero probablemente solo soy yo. Además, tiendo a evitar este tipo de software, ya que generalmente no tengo certeza de lo que hará una vez que lo ejecute.Otra razón por la que elegí
/opt
es porque generalmente está destinado a un código independiente de terceros, que no se basa en ningún archivo fuera de su/opt/'package'
directorio (y otrosopt
directorios como/etc/opt
).Una ventaja de liberar el código fuente es que las personas pueden configurar el proceso de compilación, proporcionando rutas personalizadas de biblioteca / encabezados según los detalles de su sistema. Cuando un desarrollador decide lanzar código como ejecutable, esa ventaja se pierde. En mi humilde opinión, en este momento, el desarrollador ya no puede asumir que las dependencias de su programa estarán disponibles (por lo que todo debería estar empaquetado junto con el ejecutable).
Para obtener más información, también sugeriría leer esta otra pregunta de U&L , que trata las diferencias entre
/opt
y/usr/local
. Yo personalmente evitaría/usr/local
en este caso, especialmente si no soy yo quien creó el programa que estoy instalando.fuente
Es completamente posible, y de hecho bastante fácil, crear un paquete binario de distribución a partir de un archivo zip binario o tarball, como en su ejemplo de Visual Studio Code.
Sí, los paquetes binarios de distribución de Linux como
deb
sysrpm
se generan habitualmente desde la fuente, pero no tienen que serlo. Y a menudo (aunque no siempre) es posible organizar las cosas para que el paquete binario de distribución resultante instale las cosas en los lugares "correctos" para cumplir con la política de distribución.En el caso de un tarball propietario aleatorio, si hubiera una manera de instalar correctamente el software, por ejemplo, un objetivo de instalación en un archivo MAKE, entonces eso podría usarse con la maquinaria de empaquetado de distribución. De lo contrario, esto podría involucrar el mapeo "manual" de archivos a los lugares "correctos", lo que podría ser mucho trabajo. Si bien crear un paquete de este tipo puede parecer algo extraño, aún tendría uno de los principales beneficios de la administración de paquetes, a saber, instalaciones y desinstalaciones limpias. Y, por supuesto, dicho paquete nunca sería aceptado en ninguna distribución de Linux que valga la pena, pero esa no es su pregunta.
fuente
fpm
.Raramente he visto software que se entrega como un ejecutable binario y nada más, y francamente sospecharía un poco de él. Por lo menos, al menos esperaría un
README
(con instrucciones para instalarlo) y unLICENSE
para acompañarlo. Habiendo dicho eso...El lugar habitual donde se guardan los archivos binarios instalados localmente no administrados por el administrador de paquetes de la distribución es
/usr/local/bin
. Puede ponerlo allí, y dado que ese directorio ya está (o debería estar) en su$PATH
, puede ejecutar el software escribiendo su nombre en la línea de comando.Por lo general, el software también debe tener una página de manual (el software no documentado es malo, ¿verdad?) Que entra
/usr/local/man
y puede tener algunos archivos de soporte, como traducciones a otros idiomas y complementos que pueden entrar/usr/local/share
o/usr/local/lib
, y así sucesivamente. Por esta razón, el software que no se entrega como un paquete,.deb
o que por lo.rpm
general viene con un instalador que coloca todo en los lugares correctos. Cuando está instalando desde la fuente, eso suele sermake install
.fuente
Code
es solo el punto de partida. Puede mostrar la licencia cuando se ejecuta (el ejecutable de 64 bits no se ejecuta en la máquina en cuestión, pero alguien debería verificar ese tipo de cosas para proporcionar una buena respuesta a la pregunta real de OP./usr/local
lugar de en mi directorio de inicio. (No todos los programas funcionarían,Eclipse
por ejemplo).