¿Cómo instalar aplicaciones en un disco duro separado?

10

Era tan bueno con Windows, ahora me siento como un completo idiota.

Tengo un SSD para ubuntu y quiero instalar la mayoría de mis programas en un HDD separado, pero no tengo idea de cómo.
Todas las búsquedas que he intentado solo aparecen con instalaciones de arranque dual.

  • (RESUELTO ->) También tengo problemas para localizar "/ etc /". Específicamente, para modificar Conky.
    La búsqueda de este término solo muestra instancias en las que las personas le dicen que acceda a este archivo, no cómo acceder a él.
Doctor de plaga
fuente
1
Echa un vistazo a esto , te ayudará a comenzar.
Mitch
Tenía la impresión de que todo se extendía desde la carpeta de inicio. Whoops Esa página que vinculó no fue útil con respecto a mi problema, pero la estoy leyendo y aprendiendo mucho, así que gracias.
plaguedoctor
Agregué las etiquetas mount y fstab; puede hacer lo que está describiendo configurando manualmente sistemas de archivos particulares para montar en particiones o unidades particulares.
belacqua
@belacqua ¿hay alguna otra manera que eso? No solo quiero sistemas de archivos particulares en otra unidad, quiero todos los sistemas de archivos de programas particulares. De esa manera, puedo ordenarlos según la intensidad de mi sistema, tener juegos / virtualbox / etc. completamente en mi SSD y cosas como libreoffice / thunderbird completamente en uno de los HDD.
plaguedoctor
No es tan fácil determinar dónde podría residir una instalación determinada y sus archivos; consulte las respuestas en el enlace que mencionó Mitch. También puede usar cosas como enlaces simbólicos, pero mi recomendación es comenzar de manera simple. Encuentre una aplicación de ejemplo, haga una pregunta específica aquí al respecto (o modifique esta para que sea menos general), y continúe desde allí. O experimenta con cautela.
belacqua

Respuestas:

22

Hay una gran diferencia entre Windows y GNU / Linux. En Windows es común que cada programa, junto con todas las bibliotecas de las que depende, esté instalado en una carpeta separada. Esto a menudo conduce a una gran cantidad de espacio en disco perdido debido a que las bibliotecas se instalan varias veces, para cada programa que las usa.

En Linux, los programas se instalan siguiendo el Estándar de jerarquía del sistema de archivos (FHS). Esto significa que las bibliotecas de las que dependen los programas están instaladas en una ubicación dedicada común, por lo que generalmente solo se instalan una vez, sin importar cuántos programas las usen. Además, los programas se crean de tal manera que todos usan la misma versión de una biblioteca determinada. Esto ahorra espacio en disco (y RAM en tiempo de ejecución), pero tiene el inconveniente de que no se pueden instalar programas libremente en diferentes particiones o discos duros, al menos no sin editar archivos de configuración del sistema (por ejemplo /etc/ld.so.conf.d para incluir las diferentes carpetas de la biblioteca).

Dado que el sistema de paquetes de Debian se implementó teniendo en cuenta el FHS, no hay una manera fácil de instalar los paquetes de Debian en una carpeta diferente de la que estaban destinados a instalar y hacer que funcionen sin moverlos manualmente. y editando archivos después. Esto se debe a que las rutas suelen estar codificadas en tiempo de compilación. Entonces, incluso si instala un paquete en una carpeta diferente, por ejemplo, utilizando dpkg --instdir=folder/ package.debla línea de comando, el programa seguirá buscando su configuración en '/ etc', no en 'carpeta / etc', sino en los archivos de configuración que se enviaron con el paquete, por supuesto, se instaló en 'carpeta / etc' ... El programa tampoco se agregará al menú, ya que se supone que los archivos de menú están en '/ usr / share aplicaciones', no en la carpeta / usr / share / aplicaciones.

Por supuesto, puede configurar y compilar manualmente un programa a partir de su código fuente para que instale las partes binarias y de datos donde desee, al mismo tiempo que instala los archivos de configuración en las ubicaciones compatibles con FHS, pero esto es algo que solo recomendaría para Usuarios avanzados. Si va a compilar desde la fuente, eche un vistazo a checkinstall , una herramienta que crea automáticamente paquetes de Debian.

Otra opción, que se sugirió en linuxfromscratch , es desempaquetar el paquete en una ubicación adecuada y luego crear enlaces simbólicos a todos los archivos instalados en las ubicaciones FHS correspondientes.

Como en los comentarios se refería a los juegos: muchos juegos que no se compran a través del Centro de software de Ubuntu vienen como un instalador ejecutable y, por supuesto, pueden instalarse en cualquier carpeta, generalmente una subcarpeta de su directorio de inicio. Los juegos de Windows, que se ejecutan con WINE, también se pueden instalar en cualquier directorio que desee. Para wine existe una variable de entorno llamada WINEPREFIX con la que puede configurar numerosas carpetas WINE independientes, cada una con su propia unidad virtual C:. Lea la página de manual de WINE para más información.

Incluso si los juegos / programas vienen como paquetes de Debian, puede ver el contenido del paquete en su administrador de archivos favorito. Si el juego se va a instalar en / opt, generalmente puede instalarlo de manera segura en una carpeta diferente, ya que / opt se usa a menudo como ubicación de instalación para programas que no se adhieren a FHS.

fuente del alma
fuente
Correcto y digno de votos positivos O
Rinzwind
1
Sin embargo, no está completo, ya que no expliqué en detalle qué se necesitaría para instalar un paquete en una ubicación arbitraria, qué archivos tendría que editar y qué variables de entorno necesitarían establecerse. Tengo miedo de que entonces se había convertido en una novela de tamaño medio ...
soulsource
1
No me molestaría Simplemente monte / etc / en otro lugar. Toma el 90% de la carga del disco del ssd.
Rinzwind
5

TL; DR

  1. Inicie el disco USB externo con la versión de Ubuntu que acaba de instalar y supongo que /dev/sdaes su SSD y /dev/sdbsu HDD.

  2. Cree una partición en su HDD para contener todas las aplicaciones que desea instalar (digamos 64 GB) usando gparted y supongo que esta será la tercera partición que creará en su HDD ( /dev/sbd3)

  3. ejecuta los siguientes comandos:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nanola fstabde /dev/sda1/etc/incluir la siguiente justo después de la /entrada (el directorio raíz)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. reiniciar y probar

La versión larga:

Unix / Linux / Ubuntu se concibió como un SO de servidor con un escritorio como una ocurrencia tardía, mientras que Windows se concibió como un SO de escritorio y el servidor surgió como una ocurrencia tardía.

Por lo tanto, el Estándar de jerarquía del sistema de archivos de Linux le permite tener una cantidad ilimitada de unidades / particiones en cualquier lugar y vincularlas a la unidad o partición correcta con total transparencia para el usuario, mientras que el sistema operativo Windows está limitado a un máximo de 24 unidades accesibles / particiones (a C:través de Z:as A:y B:están reservadas para disquetes).

La mayoría de las aplicaciones que instala usted mismo se instalan /opt/y /usr/bin, por lo tanto, instale Ubuntu normalmente y luego siga los pasos a continuación, donde supongo que /dev/sdaes su SSD, /dev/sdbsu HDD y /dev/sddsu memoria USB:

  1. Arranque el disco USB externo con la versión de Ubuntu que acaba de instalar.
  2. Cree una partición en su HDD para contener todas las aplicaciones que desea instalar (digamos 64 GB) usando gparted y supongo que esta será la tercera partición que creará en su HDD ( /dev/sbd3)
  3. Monte esa partición en un directorio temporal:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. copie el existente /opty /usr/binallí:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanola fstabde /dev/sda1/etc/incluir la siguiente justo después de la /entrada (el directorio raíz)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. reiniciar y probar

  7. Si todo funciona correctamente, reinicie de nuevo en la memoria USB y elimine todo en el /dev/sda1/opty /dev/sda1/usr/binreclamar el espacio en disco todavía en uso por directorios obsoletos ya montados en otro lugar.

Advertencia: el último comando también puede hacer que su sistema se bloquee en el improbable caso de que /dev/sbd3no se monte debido a una falla de hardware

Fabby
fuente
En realidad, Windows tiene el mismo soporte para montar unidades en rutas no root, desde hace aproximadamente una década. Y esas letras de unidad también podrían asignarse por usuario, por lo que H: \ podría ser un directorio de inicio por usuario. No es una gran sorpresa: la línea de Windows NT está inspirada en VMS, en gran medida un sistema multiusuario. Tampoco fue concebido Unix como un sistema operativo de servidor: AT&T hizo conmutadores telefónicos. Y UNIX se diferencia específicamente de su inspiración Multics en estar menos orientado a múltiples usuarios al principio, simplemente no había necesidad de eso en un interruptor de teléfono.
MSalters
@MSalters Wow, no conocía el bit de cambio de teléfono de AT&T ... Recuerdo la parte de VMS / NT y que M $ contrató al ingeniero principal de DEC, y también la parte de OS / 2, pero antes de eso , era un Single- Usuario preventivamente multitarea Escritorio shell. > :-) ¡Actualizado!
Fabby
1
Windows también admite unidades que no sean letras ( 1:, !:etc.), al igual que algunas versiones de DOS (con otros caracteres, [:etc.). Windows no está limitado a 24 particiones (busque puntos de montaje de volumen). Las primeras versiones de Windows (antes de 95) usaban tareas múltiples cooperativas, no preventivas, entre procesos de Windows; solo las máquinas virtuales de DOS eran preventivamente multitarea (en modo mejorado).
Stephen Kitt el
1
Solía ​​trabajar en AT&T, en el grupo UNIX. No comenzó la vida como un interruptor de teléfono.
stevegt
@MSalters Unix no parece tener nada que ver con los interruptores del teléfono, aparte de que la compañía responsable desarrolló ambos; y parece haber sido multiusuario desde el principio, más o menos cuando se acuñó el nombre. Ver esta respuesta en SE RC.
Peter - Restablece a Mónica el
2

La solución que he usado para mi Chromebook es no instalar paquetes, sino descargar su contraparte .tar.gz.

Es posible que esto no sea lo que está buscando, pero si tiene una unidad muy pequeña y desea dividir su software vital (escritorio GNOME, navegador web) de su software adicional (GIMP, IDE, juegos) para ahorrar en espacio local y mantenga su computadora funcionando sin el disco externo, es la mejor solución hasta ahora IMO.

acerspiro
fuente