Что делать, если на до на одной машине иметь несколько разных версий одного и того же приложения (например, python) и иметь возможность очень просто переключаться между разными версиями. Сразу скажу, что этот функционал должен поддерживаться самим приложением и не все приложения его поддерживают. И так, посмотрим список наших приложений и дефолтных версий:
# pkg mediator MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION perl vendor 5.12 vendor php system 5.4 system python vendor 2.6 vendor
А вот так можно посмотреть список всех доступных версий:
# pkg mediator -a MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION perl vendor 5.12 vendor php system 5.4 system python vendor 2.6 vendor python system 2.7 system
Меняем на нужную версию и проверяем:
# pkg set-mediator -V 2.7 python Packages to update: 4 Mediators to change: 1 Create boot environment: No Create backup boot environment: No PHASE ITEMS Updating modified actions 11/11 Updating image state Done Creating fast lookup database Done # pkg mediator MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION perl vendor 5.12 vendor php system 5.4 system python local 2.7 system
2 коментарі “Использование нескольких версий приложений на одной ОС”
Хм, неужели функционал сего медиатора сводится, не считая ведения внутренней бд версионных перестановок (что следует из листинга) просто к перестановкам симлинков (обычная технология в никсах) на выбранный релиз приложения? 🙂 /ну еще может быть правкам каких-нить адекватных приложениями глоб.констант да иконок приложений…/
Гм-хм (подумав немного), – сама идея “медиатора” (хотя скорее всего лишь “переключателя”) довольно интересная… но ведь по етой технологии, заюзанной в один и тот же момент времени, не обеспечишь два или более в параллель запущенных приложения, требующих разных версий скриптовых языков, – так чтобы они не конфликтовали, – не правда ли?
Вот коли б ето был настоящий медиатор (сиречь посредник), умел бы он запускать (скажем под лёгкой паравиртуализацией) прогу с нужной ей версией библиотек/языков… (Мечты-мечты…) 🙂
Он призван лишь быстро поменять дефолтную версию. В других осях вы бы это делали самостоятельно и скорее всего что-то точно пропустили бы.
Для одновременного запуска 2 программ с разными версиями используйте полные пути к нужным версиям + LD_PRELOAD для либ (если надо).