Назад | Перейти на главную страницу

Как запустить несколько экземпляров программного обеспечения в Ubuntu?

У меня есть программное обеспечение, которое нужно установить из исходного кода, используя ./configure-make-make install цикл. Можно ли «виртуализировать» это программное обеспечение, чтобы можно было выполнять разные установки программного обеспечения (с разными параметрами) и использовать?

Например, в одном случае я мог бы пожелать использовать terrible.cc в Makefile и скомпилировать. А в другом случае я мог бы исключить этот файл и включить какой-нибудь другой файл. И таких модулей могло быть несколько. По сути, это означает наличие нескольких запущенных экземпляров одного и того же программного обеспечения, но каждый из них был установлен с разными конфигурациями.

Более того, эти установки не будут выполняться «статически». Чтобы проиллюстрировать это, рассмотрим несколько пользователей telnet-ing на машину Linux, компилируя несколько экземпляров Apache, и запустив их. Итак, пользователь John's Apache прозрачен от пользователя Adam's, хотя оба Apache выполняются на одном физическом сервере. Однако я не знаю, сколько пользователей войдут в систему в любой момент времени. (Но, может быть, я смогу установить верхний предел.)

Реально ли этого добиться? Буду очень признателен за подробный ответ с возможными URL-адресами.

Невозможно сказать, что может быть лучшим способом достижения вашей цели, так как это во многом зависит от программного обеспечения, которое вы хотите использовать, и гибкости его встроенной среды.

Однако в общем случае сначала я бы попробовал проверить, можете ли вы использовать ./configure для создания префиксов установки для ваших различных версий. Что-то вроде

--prefix /opt/yoursoft/var1 

который затем поместит скомпилированные двоичные файлы в /opt/yoursoft/var1/bin или что-то подобное.

В зависимости от того, что составляет полную сборку вашего программного обеспечения, вам может потребоваться полная lib, etc, bin и т.д. папки под различными var* папки.

Сделав это правильно, вы можете запускать свои варианты программного обеспечения из соответствующих каталогов.

Использование виртуализации намного сложнее, так как вам нужно поддерживать несколько копий вашей полной операционной системы и устанавливать варианты программного обеспечения на каждой из них. Вы можете сделать это с помощью нескольких вариантов, включая типы стиля рабочего стола, такие как VirtualBox, или подход в стиле сервера с Xen или KVM (см. это руководство по Ubuntu).

Если вы хотите, чтобы ваши пользователи и машина вели себя так, как если бы у них был полный доступ (или почти полный доступ) к ресурсам на компьютере без фактического полного доступа, вам необходимо либо использовать виртуализацию, чтобы создать несколько виртуальных машин для ваших пользователей (и каждая виртуальная машина будет иметь собственный IP-адрес для вашего приложения, если она предлагает услугу, требующую порта), или вам нужно будет взглянуть на какой-то механизм песочницы, такой как тюрьмы (и это все равно приведет к некоторым проблемам с сетью, если запускается какой-то приложение, которое «дублируется», но хочет использовать тот же порт).

В противном случае они могли бы компилировать и запускать приложения, установленные прямо в их домашние каталоги, как это делалось в «старые времена» Unix. Похоже, вы описываете установку приложений в каталоги системы и локального компьютера, что является задачей системного администратора. Вам нужно будет ограничить их домашними каталогами или дать им виртуальные машины для безумной работы.