Temat: Kompilacja pythona dla linux, windows, mac
Nie bronię ci tworzenia zamkniętego oprogramowania. Z OS X czy MS Windows to nie problem, ale nie rozumiesz chyba natury systemów Uniksowych. Można zrobić paczkę ze wszystkimi zależnościami - rozpakowujesz i uruchamiasz, ale wadą jest że musisz taką paczkę robić dla każdej obsługiwanej dystrybucji kompilowanej pod jej wersje bibliotek systemowych i dla każdego wspieranego wydania dystrybucji - patrz np. Lefthand, lecz czy znajdziesz pakiety ich produktów w repozytoriach dystrybucji? czy są polecane na stronach poświęconych Linuksowi? :) nie :) Ja mam "za nowe" nagłówki kernela i Lefthand nie działa :P do tego 64 bitowy system, którego oni nie obsługują bo po prostu mają za mało funduszy czy ludzi do rozwoju ich softu ;)
Chcesz pisać zamknięty soft pod Linuksa - nikt ci tego nie broni, ale wątpię osobiście czy jedna osoba jest w stanie stworzyć na tyle dobry zamknięty program, by mógł konkurować z otwartym oprogramowaniem dostępnym w repozytoriach dystrybucji wraz z jego automatycznymi aktualizacjami, czy też znacznie szybszym rozwojem (społeczność).
Dziwne dodatki, biblioteki. apt? Zupełnie nie rozumiesz co to jest Linux. Patrz na sukces Ubuntu. Obecnie instalacja oprogramowania jest bajecznie prosta i użytkownik za pomocą prostych w obsłudze graficznych GUI. Sukces Ubuntu jak i innych dystrybucji jak openSUSE świadczy o tym że ludziom się to podoba i nie chcą podejścia Windowsa ściągania z jakiś stronek jakiś tam exeków. Ten system do tego się nie nadaje i nikt tego nie potrzebuje. Linux jak reszta systemów nie jest uniwersalna dla każdego i nigdy nie będzie bo to niemożliwe. Nie zbawisz otwartego Linuksa zamkniętym oprogramowaniem.
Większość ludzi, gotowych na przejście na Linuxa odstrasza właśnie podejście, że ludzie tworzący soft robią go głównie pod siebie, i jeżeli ktoś mądry nie przygotuje porządnego instalatora, czy paczki deb, rpm która ułatwi instalacje bez głupich errorów i musowej instalacji paczek x,xx,xxx sprawi że być może nowy użytkownik linuxa zostanie użytkownikiem Linuksa, a nie tylko przetestuje i powróci do starego windowsa.
Jeden wielki LOL. Gnome, KDE, Gimp, XFCE, OpenOffice tworzą ludzie pod siebie, nie przygotowują instalatorów, paczek? Głupoty. Obecnie wszystkie topowe dystrybucje mają tak duże repozytoria, że nie trzeba szukać paczek danej aplikacji, ani martwić się o zależności - bo one wraz z tą aplikacją są w repozytorium. Osoby mocno związane z Windowsem czy Mac OS X i tak nie przejdą na Linuksa bo potrzebują specyficznych funkcjonalności tych systemów (czy to MS Office, czy Quark, czy aplikacje Adobe, czy też małe potrzeby i mała wiedza o komputerach).
Nawet w przypadku dystrybucji dla "geeków":
bash-3.2# pacman -S eclipse
rozwiązywanie zależności...
szukanie konfliktów międzypakietowych...
Celuje (5): libstdc++5-3.3.6-2 jre-6u7-1 jdk-6u7-1 unzip-5.52-4 eclipse-3.4-3
Całkowity rozmiar do pobrania: 242,09 MB
Całkowity rozmiar po instalacji: 387,96 MB
Kontynuować instalację? [T/n]
.
W Ubuntu to będzie jeszcze prostsze i bez stosowania konsoli ;)
Tworzysz aplikację - jest fajna i przydatna - trafia do repozytoriów dystrybucji i się powinieneś cieszyć że aplikacja jest ogólnodostępna dla ich użytkowników. Możesz pracować nad rozwojem aplikacji (z pomocą np. użytkowników) a nie budowaniu kilkudziesięciu pakietów o monstrualnych rozmiarach i złożoności tylko po to by dostarczyć n-potrzebnych bibliotek i zależności. Do tego użytkownik musi odwiedzać stronę w celu sprawdzania czy są aktualizacje itd. itp. Nie zrobisz lepszego odtwarzacza niż np. MPlayer. Możesz spokojnie stworzyć odtwarzacz o zamkniętym kodzie - i nawet jeżeli mógłbyś użyć wtedy bez problemów wszystkich bibliotek obsługujących multimedia pod Linuksem to paczka "bez zależności" miałaby duży rozmiar i byłaby skomplikowana (co w efekcie daje duże szanse że coś się posypie) i żadna otwarta dystrybucja nie dodałaby tego do swojego repozytorium, ani nie polecałaby/wspierałaby coś takiego. Mógłbyś dogadać $$$ się z zamkniętymi dystrybucjami jak Xandros, ale ile osób używa Xandrosa, wie co to jest i chciałoby kupić "Linuksa", a nie użyć ogólnodostęnego?
Jeżeli chcesz tworzyć zamknięte oprogramowanie pod Uniksy - nie rób tego w języku skryptowym jak Ruby czy Python, Perl. Użyj np. Javy, albo C/C++/C# - łatwiej o wygenerowanie binarek "bez" źródła.