W pogoni za wersjami
Frameworki, szczególnie w językach dynamicznych bardzo szybko się rozwijają. Powstaje wersja za wersją. Przy większej liczbie aplikacji może to być uciążliwe.
Aplikacje pisane pół roku temu są kompatybilne z wersją 0.x frameworka, po drodze były wersje 0.x.y, 0.y a teraz jest wersja 0.z. Czy tkwić z jedną ustaloną jako produkcyjna wersją czy używać do nowych projektów aktualnie najnowszej. Przecież na serwerze jest zainstalowana wersja 0.x i nie ma szans na podniesienie i sprawdzenie wszystkich aplikacji.
W rozwiązaniu tego dylematu pomógł pakiet “virtualenv”. Za jego pomocą szybko zrobimy wirtualne środowisko pythona.
Może przykład z Pylonsem: na serwerze jest zainstalowana wersja 0.9.5 a najnowszą wersją jest 0.9.6, która ma sporo zmian.
Więc instalujemy pakiet virtualenv:
easy_install virtualenv
Robimy środowisko:
virtualenv 096
Powstał nowy katalog “096” z binarką pythona. Instalujemy nową wersję Pylonsa:
cd 096
./bin/easy_install Pylons==0.9.6
Wgrywamy naszą aplikację do jakiegoś podkatalogu np. Aplikacja i uruchamiamy:
cd Aplikacja
../bin/paster serve production.ini --daemon start
I gotowe. Możemy sobie dograć niezbędne wersje bibliotek. Trzeba pamiętać aby używać skryptów jawnie podając katalog 096/bin.
Niekiedy programy, które mają troszkę C, można kompilować po prostu : ./configure –prefix=/opt/nowa/wersja –with-python=/opt/stara/wersja : Bardzo mi się to podoba i wygodniejsze to nawet od easy_install. Ale o virtualdev nie wiedziałem, dzięki,