![¿Puedo compartir /usr/local entre múltiples distribuciones de Linux?](https://rvso.com/image/31643/%C2%BFPuedo%20compartir%20%2Fusr%2Flocal%20entre%20m%C3%BAltiples%20distribuciones%20de%20Linux%3F.png)
Probé Ubuntu 12.04 y, según tengo entendido, hice las siguientes particiones:
- Swap de 2GB (tengo 2GB de RAM)
- 1 GB
/boot
, ya que instalaré diferentes versiones del kernel (estoy comenzando el desarrollo del kernel) - 35GB
/var
- 40GB
/usr/local
- 407GB
/home
- 15 GB
/
(raíz)
Ahora quiero instalar OpenSUSE 12.2 junto con Ubuntu 12.04. ¿Puedo compartir /var
y /usr/local
entre los dos sistemas operativos? Sé que son dos distribuciones diferentes con paquetes diferentes, pero ¿hay alguna forma de compartir el espacio en disco? ¿Para que ambos SO puedan tener el suyo /usr/local
en la misma partición o algo así?
Respuesta1
Puedes compartir /usr/local
. A veces, las dos distribuciones tendrán diferentes versiones de bibliotecas disponibles, por lo que es posible que necesites instalar algunas bibliotecas en un lado o en el otro o en /usr/local
sí mismo. La carga de instalar alguna que otra biblioteca adicional probablemente se compense al no tener que mantener dos instalaciones de cada programa en formato /usr/local
.
Si hay programas que solo quieres tener en /usr/local
uno de los sistemas, puedes hacer un arreglo diferente: no compartir /usr/local
, pero compartir unestibarrepositorio y crear enlaces simbólicos en /usr/local
ambos sistemas.
No es necesario crear /usr/local
una partición separada para compartirla. Puede almacenarlo en la partición del sistema de un sistema, montarlo donde quiera en el otro sistema y crear un enlace simbólico.
No puedes compartir /var
. Existen pequeñas diferencias en la forma en que están organizados los directorios y cada distribución tiene sus propios ID de usuario. Es posible que pueda compartir partes de /var
, por ejemplo, el carrete de correo.
35 GB /var
es enorme. No necesitas eso para un sistema básico. Si va a colocar muchos datos allí (por ejemplo, porque ahí es donde está la raíz de su servidor web), dimensione el sistema de archivos de acuerdo con sus datos. No tiene sentido dividir /var
desde la partición raíz, así que combínelas. No lo menciona /usr
en su lista: esto tampoco necesita dividirse de la partición raíz. Simplemente cree una partición del sistema para cada sistema operativo, además de una partición compartida /home
. Necesita más de 15 GB para la partición del sistema, a menos que vaya a ser muy conservador con los programas que instalará. Haga una partición del sistema de 50 GB y estará bien.
No es necesaria una /boot
partición separada a menos que tenga requisitos adicionales, como cifrar la partición del sistema.
Respuesta2
Además de los enlaces simbólicos, también puedes utilizar bind mounts
:
http://docs.1h.com/Bind_mounts
Básicamente, puedes tener una partición con un sistema de archivos (similar a la configuración de Anthon). En este caso, asumiendo que tiene el sistema de archivos montado, /mnt/local
simplemente lo haría mount --bind /mnt/local/ubuntu /usr/local
en su instalación de ubuntu y mount --bind /mnt/local/suse /usr/local
en su instalación de suse.
Un beneficio de hacer esto es que puede hacerlo sobre un directorio existente sin destruir/mover el directorio /usr/local
real ./usr/local
He aquí un ejemplo:
# mkdir foo
# touch foo/nowyouseeme
# mkdir bar
# touch bar/nowyoudont
# ls foo
nowyouseeme
# mount --bind ./bar ./foo
# ls foo
nowyoudont
# umount foo
# ls foo
nowyouseeme
Respuesta3
/usr/local
(es decir, software compilado/instalado localmente) debería funcionar bien,siempre y cuando las bibliotecas del sistema utilizadas por lo que sea que exista sean compatibles. Esto significa que puede salirse con la suya con distribuciones más o menos contemporáneas "para uso de escritorio". Si intenta mezclar y combinar, diga que Fedora y RHEL/CentOS lo hacentodobasándose en la distribución con las bibliotecas más antiguas (RHEL/CentOS en este caso), ya que las bibliotecas base ( glibc
en su mayoría) son razonablemente compatibles con versiones anteriores. TúvoluntadSi tiene problemas con C++ (el tiempo de ejecución de C++ tiende a cambiar bastante entre versiones), algunas bibliotecas de gráficos cambian las interfaces de cualquier manera. Cualquier cosa relacionada con el entorno de escritorio (ya sea KDE o Gnome o lo que sea) probablemente esté fuera de discusión.
Respuesta4
Cómo configurar múltiples instalaciones en una máquina es algo que depende de su estilo de trabajar con estas instalaciones. Otra cosa a tener en cuenta es que, a menos que vaya a realizar algún trabajo ingenioso en la máquina virtual utilizando particiones reales, estas dos instalaciones no funcionarán al mismo tiempo.
En mi experiencia, la /home
partición debería poder compartirse sin mucho problema. Cualquier usuario creado específicamente para aplicaciones ( dovecot
, fetchmail
), pero cualquiera de los sistemas normalmente no tiene directorios reales /home
como los 'usuarios normales'. Comparto nombres de inicio de sesión entre diferentes versiones de Ubuntu, pero eso a veces genera problemas al volver a una instalación anterior, porque los archivos de configuración en su directorio de inicio se convirtieron automáticamente. Para resolver estos problemas, tengo el mismo inicio de sesión con diferentes directorios de inicio en /home
, pero con la misma identificación de usuario y de grupo para compartir los datos. Siempre puedes crear un vínculo entre subdirectorios específicos (por ejemplo, aquellos con tu Música) para los cuales no hay riesgo de actualizaciones incompatibles/irreversibles.
No tengo una partición separada desde que trabajé en un PDP 11/70 a mediados de los 80, así que no sé por qué tu amigo me lo recomendó. Además, varios programas se instalarán de forma predeterminada /usr/local
si instala desde la fuente y, por ejemplo, pip
las instalaciones para módulos de Python hacen lo mismo. Para evitar problemas allí, haría que /mnt/local
en cada máquina montara la partición designada para /usr/local
allí, crearía directorios ubuntu
y suse
en esa partición y un enlace suave ( ln -s /usr/local /mnt/local/ubuntu
) para cada resp. máquina. De esa manera compartes el espacio en esa partición sin correr el riesgo de sobrescribirla accidentalmente. Siempre puedes crear enlaces más adelante entre cosas que quieras compartir explícitamente.
Una cosa adicional que puedo recomendar es mantener algún tipo de registro de lo que instaló para cada instalación (yo uso emacs en modo de registro de cambios con un archivo para cada combinación de máquina, distribución y revisión), para que pueda rehacer la instalación si actualiza y No es necesario que recuerdes qué cosas adicionales instalaste. Hoy en día tengo un setupnewsystem
script que hace todas las cosas adicionales por mí, incluido ponerlo /etc
bajo control de revisión después de la instalación.mercurial