Я использую Ubuntu GNOME 20.04 и Kubuntu 21.04. Обе они находятся в отдельных разделах. Мне нужно выполнять работы на обеих ОС, но для этого я должен перезагрузить компьютер, а затем выбрать другую ОС для загрузки.
Поэтому я хочу знать, есть ли способ поделиться приложениями, установленными в Kubuntu, которые также используются в Ubuntu, без переустановки того же программного обеспечения в Ubuntu снова, и поэтому мне не нужно переключаться между операционными системами.
Да, вы можете запускать программное обеспечение из нескольких установок Ubuntu одновременно, используя chroot. Есть несколько предостережений:
Чтобы настроить chroot, вам необходимо сделать следующее:
Загрузиться с установкой Kubuntu.
Установите schroot
:
apt-get install schroot
Добавьте следующее в /etc/schroot/schroot.conf
с ИМЯ ПОЛЬЗОВАТЕЛЯ
изменено на ваше имя пользователя:
[gnome]
description = Ubuntu 20.04
directory = / chroot / gnome {{1} } users = USERNAME
groups = root
root-groups = USERNAME
Добавьте корневой каталог chroot в / etc / fstab
(это второй строку ниже). Затем добавьте привязки для системных каталогов и любые нестандартные крепления, которые вы используете. Если вам нужны какие-то особые варианты крепления, добавьте их. Например:
/.media / media нет значений по умолчанию, 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 без значений по умолчанию, rbind, noauto 0 1
/ sys / chroot / gnome / sys без значений по умолчанию, rbind, noauto 0 1 {{ 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 нет значений по умолчанию, rbind, noauto 0 1
/ tmp / chroot / gnome / tmp нет значений по умолчанию, rbind, noauto 0 1 {{1} } / home / chroot / gnome / home none defaults, rbind, noauto 0 1
/ media / chroot / gnome / media none defaults, rbind, noauto 0 1
Создать каталоги:
mkdirhier /.media / chroot / gnome
chmod 755 /.media / chroot / chroot / gnome
chown root.root /.media / chroot / chroot / gnome
Добавьте следующее в /etc/rc.local
:
# Сделайте монтировки общими
mount /.media || истина
mount / media || истина
/ bin / mount --make-rshared /.media || true
# Если у вас есть статические монтирования в / media, добавьте команды монтирования для
# их здесь и установите для них noauto в / etc / fstab
{ {1}} # Смонтировать системные каталоги
mount / chroot / gnome / proc || истина
mount / chroot / gnome / dev || истина
mount / chroot / gnome / sys || истина
mount / chroot / gnome / run / dbus || истина
mount / chroot / gnome / run / lock || истина
mount / chroot / gnome / var / tmp || истина
mount / chroot / gnome / tmp || истина
mount / chroot / gnome / home || истина
mount / chroot / gnome / media || true
# Дополнительные настройки
# (Они могут не понадобиться в вашей системе)
# Запустить udevd под gnome
# Аудио в Chrome не будет работать без этого
(schroot -c gnome -p -u root / etc / init.d / udev start) || true
# Исправить pulseaudio
killall pulseaudio || true
Возможно, вам придется применить дополнительные настройки при входе в систему. Если необходимо / необходимо, создайте следующий сценарий оболочки и настройте его для запуска при входе в систему, то есть при запуске среды рабочего стола (KDE или Gnome):
#! / Bin / sh
# Исправить Pulse Audio
при воспроизведении pulseaudio; do
killall pulseaudio
sleep 1
done
schroot -p -c gnome start-pulseaudio-x11
# Раскомментируйте это если вы используете KDE4 в chroot
# schroot -p -c KDE4_chroot kded4 &
# (могут потребоваться дополнительные настройки)
Harmonize пользователи и группы между двумя установками. Вероятно, вам удастся просто убедиться, что ваш пользователь (и его группа) имеют одинаковые UID и GID на обоих. Вам нужно будет обновить соответствующие UID и GID в файлах chroot / etc / passwd
, / etc / group
и / etc / shadow
(обратите внимание старых UID и GID). Как только это будет сделано, обновите числовые идентификаторы в файловой системе chroot; здесь могут помочь команда find
-exec
вместе с chown
и chgrp
.
Если у вас есть демон, который вы хотите запустить в chroot, создайте следующий сценарий инициализации ( /etc/init.d/DAEMON_NAME
, измените DAEMON_NAME соответствующим образом) и сделайте его исполняемым:
#! / bin / sh
set -e
schroot -p -c gnome -u root /etc/init.d/DAEMON_NAME $ @
exit 0 {{1} }
Затем добавьте в конец /etc/rc.local
следующее:
/etc/init.d/DAEMON_NAME restart
Добавить сценарии оболочки для запуска любые программы в chroot, которые вы хотите запускать как обычный пользователь.Не забудьте сделать их исполняемыми. При желании вы можете добавить на рабочий стол значок для запуска сценария-оболочки. Например:
/ usr / local / bin / chrome_gnome
:
#! / Bin / sh
mkdir $ HOME / .chrome_gnome || правда
schroot -p -c gnome - google-chrome --user-data-dir = $ HOME / .chrome_gnome "$ @"
Перезагрузите систему, и все должно работать. Чтобы запустить команду в chroot, используйте оболочку, которую вы установили на предыдущем шаге, или просто вручную запустите команду schroot ...
из командной строки.
Вам нужно будет настроить все вышеперечисленное в соответствии с вашей системой. Например, вы, вероятно, захотите объединить содержимое двух ваших домашних каталогов в один каталог, установленный в обеих установках. Сделайте это перед установкой привязки (или перезагрузкой), поскольку существующие файлы в точке монтирования не будут видны после того, как будет выполнено монтирование привязки (они все еще будут на диске, но не будут доступны).
Если вам нужно установить или обновить программное обеспечение в chroot, просто используйте schroot -p -c gnome -u root
, затем запустите apt
и т. Д. Как обычно.
Возможна дополнительная параллельная установка Ubuntu. Используйте debootstrap
, чтобы выполнить первоначальную установку в новый каталог, затем добавьте его, как показано выше.
Если вы хотите иметь возможность щелкать ссылки в chrooted-приложении и открывать их с помощью обработчика по умолчанию базовой ОС, вам необходимо внести еще несколько изменений. Обратите внимание, что после этого все будет работать неправильно, если вы напрямую загрузите ОС, которая была изменена.
Создайте сценарий оболочки / usr / local / bin / xdg-open-relay-receive
и сделайте его исполняемым:
#! / Bin / sh
{{1} } mkfifo -m 666 / tmp / xdg-open-relay
tail -f "/ tmp / xdg-open-relay" | пока прочтите строку
сделайте
xdg-open "$ line"
готово
Вы можете отредактировать приведенное выше, чтобы ужесточить разрешения на / tmp / xdg-open-relay
.
Добавьте следующее в конец сценария, который вы создали для запуска при входе в систему:
killall xdg-open-relay-receive
nohup / usr / local / bin / xdg-open-relay- получить &
Заменить команду chroot xdg-open
новым сценарием оболочки:
mv / chroot / gnome / usr / bin / xdg-open / chroot / gnome / usr / bin / xdg-open.DISABLED
Запишите следующее в / chroot / gnome / usr / bin / xdg-open
и сделайте его исполняемым:
#! / bin / sh {{ 1}} echo "$ @"> / tmp / xdg-open-relay
Многие приложения используют каталог / home для хранения данных, генерируемых приложением (миры Minecraft, изображения, редактирование видео kdenlive ...). Поэтому, если вы создаете другой раздел для / home для ubuntu, а затем используете тот же раздел в Kubuntu без переформатирования и ввода того же имени пользователя и пароля во время установки, это должно привести к тому, что настройки вашего приложения будут одинаковыми для двух вариантов. С помощью этого метода сложно делиться приложениями, но, по крайней мере, ваши настройки должны быть общими.
Источник: https://unix.stackexchange.com/questions/442495/different-linux-distros-sharing-applications
практические советы: https://unix.stackexchange. com / questions / 6344 / different-linux-distros-sharing-the-same-home-folder принял ответ
Нет, практически. Наличие двух отдельных операционных систем разных версий, но затем настройка того, что вы можете использовать двоичные файлы из другой версии в другой операционной системе, будет: 1) во многих случаях невозможно из-за двоичной несовместимости и / или неправильных или недоступных зависимостей, или 2) быть технически очень сложно настроить, но при этом все еще существует значительно больший риск возникновения непредвиденных проблем.
Да, в принципе, вы можете смонтировать системный раздел другой операционной системы и запустить некоторые простые двоичные файлы непосредственно в другой операционной системе. Однако большинство двоичных файлов намного сложнее и зависят от заданных системных конфигураций и зависимостей. Они не будут запускаться, если вы попытаетесь запустить их из другой операционной системы. Кто-то очень опытный в Linux все же сможет заставить часть этого работать в качестве хобби - это упражнение, которое нужно будет повторять для каждого приложения индивидуально.
Итак, есть ли способ поделиться приложениями, установленными в Kubuntu, также используются в Ubuntu без повторной переустановки того же программного обеспечения в Ubuntu , поэтому мне не нужно переключаться между ОС.
Как вы здесь написали, да.
Поддерживайте единую операционную систему и установите на нее Gnome Shell, оболочку стандартной Ubuntu, и KDE Plasma, оболочку Kubuntu. После этого любое установленное вами приложение будет доступно на любом рабочем столе, на котором вы вошли в систему.