He estado usando Ubuntu GNOME 20.04 y Kubuntu 21.04. Ambos están en particiones separadas. Tengo que trabajar en ambos sistemas operativos, pero para eso tengo que reiniciar la computadora y luego seleccionar el otro sistema operativo para iniciar.
Entonces quiero saber si hay alguna manera de compartir las aplicaciones instaladas en Kubuntu que también se usan en Ubuntu sin reinstalar el mismo software en Ubuntu nuevamente y así no tener que cambiar entre sistemas operativos.
Respuesta1
No, prácticamente hablando. Tener dos sistemas operativos separados, de diferentes versiones, pero luego configurar que puedas usar binarios de otra versión en un sistema operativo diferente sería 1) en muchos casos imposible debido a la incompatibilidad binaria y/o dependencias incorrectas o no disponibles o 2) ser Técnicamente es muy complicado de configurar y aún conlleva un riesgo significativamente mayor de problemas inesperados.
Sí, en principio, podría montar la partición del sistema del otro sistema operativo y ejecutar algunos archivos binarios simples directamente en el otro sistema operativo. La mayoría de los binarios, sin embargo, son mucho más complejos y dependen de configuraciones y dependencias específicas del sistema. No se ejecutarán cuando intente ejecutarlos desde un sistema operativo diferente. Alguien muy competente en Linux todavía puede hacer que algo de esto funcione como un pasatiempo; es un ejercicio que debería repetirse para todas y cada una de las aplicaciones individualmente.
Entonces, ¿hay alguna forma de compartir las aplicaciones instaladas en Kubuntu? También se usa en Ubuntu sin volver a instalar el mismo software en Ubuntu y, por lo tanto, no tengo que cambiar entre sistemas operativos.
Como lo escribiste aquí, sí.
Mantenga un único sistema operativo e instale en él Gnome Shell, el shell de Ubuntu estándar, y KDE Plasma, el shell de Kubuntu. Cualquier aplicación que instale estará disponible en cualquier escritorio en el que haya iniciado sesión.
Respuesta2
Sí, puedes ejecutar software desde múltiples instalaciones de Ubuntu al mismo tiempo usando un chroot. Hay algunas advertencias:
- Todos los programas se ejecutarán bajo un único kernel.
- Los programas en el chroot no estarán disponibles de forma predeterminada para el sistema operativo principal. Necesitará crear scripts contenedores para ejecutarlos.
- Es posible que sea necesario realizar una serie de ajustes para que todo funcione sin problemas. Como mínimo, será necesario armonizar la propiedad de los archivos, los usuarios y los grupos. Lo que se muestra a continuación funciona en mi sistema. Probablemente necesitarás hacer ajustes adicionales que no puedo prever.
Para configurar un chroot necesitarás hacer lo siguiente:
Inicie la instalación de Kubuntu.
Instalar
schroot
:apt-get install schroot
Agregue lo siguiente
/etc/schroot/schroot.conf
conUSERNAME
el cambio a su nombre de usuario:[gnome] description=Ubuntu 20.04 directory=/chroot/gnome users=USERNAME groups=root root-groups=USERNAME
Agregue el directorio raíz del chroot
/etc/fstab
(es la segunda línea a continuación). Luego agregue montajes de enlace para los directorios del sistema y cualquier montaje no estándar que esté utilizando. Si necesita opciones de montaje especiales, agréguelas también. Por ejemplo:/.media /media none defaults,bind,noauto 0 0 LABEL=gnome /chroot/gnome ext4 defaults,auto,errors=remount-ro 0 0 /proc /chroot/gnome/proc none defaults,rbind,noauto 0 1 /dev /chroot/gnome/dev none defaults,rbind,noauto 0 1 /sys /chroot/gnome/sys none defaults,rbind,noauto 0 1 /var/run/dbus /chroot/gnome/run/dbus none defaults,rbind,noauto 0 1 /var/lock /chroot/gnome/run/lock none defaults,rbind,noauto 0 1 /var/tmp /chroot/gnome/var/tmp none defaults,rbind,noauto 0 1 /tmp /chroot/gnome/tmp none defaults,rbind,noauto 0 1 /home /chroot/gnome/home none defaults,rbind,noauto 0 1 /media /chroot/gnome/media none defaults,rbind,noauto 0 1
Crear directorios:
mkdirhier /.media /chroot/gnome chmod 755 /.media /chroot /chroot/gnome chown root.root /.media /chroot /chroot/gnome
Agregue lo siguiente a
/etc/rc.local
:# Make mounts shared mount /.media || true mount /media || true /bin/mount --make-rshared /.media || true # If you have any static mounts under /media, add mount commands for # them here and set them to noauto in /etc/fstab # Mount system directories mount /chroot/gnome/proc || true mount /chroot/gnome/dev || true mount /chroot/gnome/sys || true mount /chroot/gnome/run/dbus || true mount /chroot/gnome/run/lock || true mount /chroot/gnome/var/tmp || true mount /chroot/gnome/tmp || true mount /chroot/gnome/home || true mount /chroot/gnome/media || true # Additional tweaks # (These might not be needed on your system) # Start udevd under gnome # Audio on Chrome won't work without this ( schroot -c gnome -p -u root /etc/init.d/udev start ) || true # Fix pulseaudio killall pulseaudio || true
Es posible que deba aplicar ajustes adicionales al momento de iniciar sesión. Si es necesario/apropiado, cree el siguiente script de shell y configúrelo para que se ejecute al iniciar sesión, es decir, cuando se inicie el entorno de escritorio (KDE o Gnome):
#!/bin/sh # Fix Pulse Audio while pidof pulseaudio ; do killall pulseaudio sleep 1 done schroot -p -c gnome start-pulseaudio-x11 # Uncomment this if you're running KDE4 in the chroot #schroot -p -c KDE4_chroot kded4 & # (additional tweaks may be needed)
Armonice usuarios y grupos entre las dos instalaciones. Probablemente pueda salirse con la suya simplemente asegurándose de que su usuario (y su grupo) tengan el mismo UID y GID en ambos. Deberá actualizar los UID y GID apropiados en el chroot
/etc/passwd
y/etc/group
(/etc/shadow
tome nota de los UID y GID antiguos). Una vez hecho esto, actualice las ID numéricas en el sistema de archivos chroot; La opciónfind
del comando-exec
junto conchown
ychgrp
puede ayudar aquí.Si tiene un demonio que desea ejecutar en el chroot, cree el siguiente script de inicio (
/etc/init.d/DAEMON_NAME
, cambie DAEMON_NAME según corresponda) y hágalo ejecutable:#!/bin/sh set -e schroot -p -c gnome -u root /etc/init.d/DAEMON_NAME $@ exit 0
Luego agregue lo siguiente al final de
/etc/rc.local
:/etc/init.d/DAEMON_NAME restart
Agregue scripts de shell para iniciar cualquier programa en el chroot que desee ejecutar como usuario normal. No olvides hacerlos ejecutables. Si lo desea, puede agregar un ícono en el escritorio para iniciar el script contenedor. Por ejemplo:
/usr/local/bin/chrome_gnome
:#!/bin/sh mkdir $HOME/.chrome_gnome || true schroot -p -c gnome -- google-chrome --user-data-dir=$HOME/.chrome_gnome "$@"
Reinicie el sistema y todo debería funcionar. Para ejecutar un comando en el chroot, use el contenedor que configuró en el paso anterior o simplemente ejecute manualmente el
schroot ...
comando desde la línea de comandos.
Deberá ajustar todo lo anterior para adaptarlo a su sistema. Por ejemplo, probablemente querrás fusionar el contenido de tus dos directorios de inicio en un único directorio montado en ambas instalaciones. Haga esto antes de realizar cualquier montaje de enlace (o reiniciar), ya que los archivos existentes bajo el punto de montaje no serán visibles una vez que se realice el montaje de enlace (aún estarán en el disco pero no serán accesibles).
Si necesita instalar o actualizar software en el chroot, simplemente use y schroot -p -c gnome -u root
luego ejecute apt
, etc. como de costumbre.
Se pueden realizar instalaciones paralelas adicionales de Ubuntu. Úselo debootstrap
para realizar la instalación inicial en un nuevo directorio y luego agréguelo como se muestra arriba.
Si desea poder hacer clic en enlaces en una aplicación chroot y abrirlos usando el controlador predeterminado del sistema operativo base, deberá realizar algunos cambios más. Tenga en cuenta que después de hacer esto, las cosas no funcionarán correctamente si inicia directamente el sistema operativo que ha sido chroot.
Cree un script de shell
/usr/local/bin/xdg-open-relay-receive
y hágalo ejecutable:#!/bin/sh mkfifo -m 666 /tmp/xdg-open-relay tail -f "/tmp/xdg-open-relay" | while read line do xdg-open "$line" done
Es posible que desee editar lo anterior para reforzar los permisos en
/tmp/xdg-open-relay
.Agregue lo siguiente al final del script que creó para ejecutarlo al iniciar sesión:
killall xdg-open-relay-receive nohup /usr/local/bin/xdg-open-relay-receive &
Reemplace el comando del chroot
xdg-open
con un nuevo script de shell:mv /chroot/gnome/usr/bin/xdg-open /chroot/gnome/usr/bin/xdg-open.DISABLED
Escribe lo siguiente
/chroot/gnome/usr/bin/xdg-open
y hazlo ejecutable:#!/bin/sh echo "$@" > /tmp/xdg-open-relay
Respuesta3
Muchas aplicaciones utilizan el directorio /home para almacenar los datos que genera la aplicación (mundos de Minecraft, imágenes, ediciones de vídeo de Kdenlive...). Entonces, si crea una partición diferente para /home para ubuntu y luego usa esa misma partición en Kubuntu sin reformatear y escribir el mismo nombre de usuario/contraseña durante la instalación, esto debería dar como resultado que la configuración de su aplicación sea la misma en las dos variantes. Es difícil compartir aplicaciones usando este método, pero al menos se debe compartir su configuración.
Fuente:https://unix.stackexchange.com/questions/442495/ Different-linux-distros-sharing-applications
Consejos para cosas prácticas:https://unix.stackexchange.com/questions/6344/ Different-linux-distros-sharing-the-same-home-folderrespuesta aceptada