В классическом Linux тестирование программного обеспечения одновременно и простая и сложная задача. Есть репозитория и понятие каналов (channels), но обычно вы можете установить только один экземпляр программы. Если вы хотите установить несколько версий параллельно, то это самостоятельно и ... удачи вам! С версии snapd 2.36 появилась поддержка установки множества версий программы, где каждая будет обладать своей конфигурацией, интерфейсами с системой и т.д.
Нужно включить экспериментальный флаг - sudo snap set system experimental.parallel-instances=true
После этого можно устанавливать софт в snap пакетах с указанием уникального идентификатора. Идентификатор - это строка до 10 символов, добавляемая к имени пакета после знака нижнего подчёркивания ( _ ). К примеру, sudo snap install gimp_first
gimp_first - не существует как snap пакет и демон snapd поставит gimp с идентификатором first. Можно быть проще и ставить sudo snap install gimp_1 gimp_2 gimp_3
Но можно не только ставить различные экземпляры одного и того же. Интереснее ставить различные версии из различных каналов.
Можно поставить vlc стабильную сборку (sudo snap install vlc
), а тестовые сборки установить с идентификаторами.
snap info vlc
name: vlc summary: The ultimate media player … channels: stable: 3.0.7 2019-06-07 (1049) 212MB - candidate: 3.0.7 2019-06-07 (1049) 212MB - beta: 3.0.7.1-1-6-gdedb3bd 2019-06-18 (1071) 212MB - edge: 4.0.0-dev-8388-gb425adb06c 2019-06-18 (1070) 329MB -
Предположим что у вас поставлена стабильная версия 3.0.7 из канала stable. Ставим дополнительно новую версию с канала edge.
sudo snap install --edge vlc_edge
vlc_edge (edge) 4.0.0-dev-8388-gb425adb06c from VideoLAN✓ installed
Убедимся что у нас теперь две версии одного и того же приложения.
snap list | grep vlc
vlc 3.0.7 1049 stable videolan* - vlc_edge 4.0.0-dev-8388-gb425adb06c 1070 edge videolan* -
Благодаря механизму параллельной установки софта в snap, у вас будут действительно различные программы со своим домашним каталогом и данными. Это очень удобно, но не забывайте, что, если программа требует эксклюзивный доступ к сокетам и/или портам, то будут проблемы, как и в случае запуска службы, желающей привязаться (bind) к определённому порту. Следующие экземпляры софта будут получать отлуп.
На данный момент параллельные установки являются экспериментальной возможностью и лучше всего подходят пользователям, которым нужно проводить тестирование программного обеспечения. Но функциональность experimental.parallel-instances открывает ряд интересных возможностей и для простого пользователя, так как позволяет получить ранний доступ к новым инструментам и функциям, в то же время вы можете продолжать использовать стабильную версию программы без какого-либо риска.
Дата последней правки: 2019-06-20 15:27:26