Ogłoszenie

Zwiń
No announcement yet.

Instalacja GG pod Linuxa (Ubuntu 12.04 LTS PL)

Zwiń
X
 
  • Filtr
  • Czas
  • Pokaż
Wyczyść wszystko
new posts

  • lucekk
    odpowiedział(a)
    Odświeżając temat, gg i tak jest w tyle bo nie obsługuje nowego standardu renderowania ikon w trayu. Na Ubuntu jest na to brzydki hack do qt5, który ratuje sytuację, ale zalecane jest jendak przeportowanie aplikacji na qt5.

    Zostaw komentarz:


  • suore
    odpowiedział(a)
    Mnie bardziej ciekawi po jakie licho w wymaganiach jest xorg :>
    Aplikacji nie pisze się pod serwery wyświetlania, tylko pod bibliotekę np. wysokopoziomową jak QT4/5/QML, lub niskopoziomową jak SDL2.
    Ostatnio edytowany przez suore; [ARG:4 UNDEFINED].

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    Kusi mnie, żeby to zrobić, ale nie wiem czy ulegnę tej pokusie. Tylko z tym prostym instalatorem na wszystkie dystrybucje będzie kiepsko, bo w tej chwili nie potrzeba instalatora,żeby rozpakować archiwum gdzie się chce. Nie wiem jak u innych, ale u mnie wszystko działało od razu (oprócz kamerki, która działa z wszystkimi programami prócz GG i Tlen.pl), a czytałem o kłopotach z flash'em itp. No i integracja z Unity jest dość specyficzna, więc jeśli coś napiszę to dla Ubuntu, a do innych dystrybucji trzeba będzie to przerobić. No i nie próbowałem nowszych wersji niż 10.04 uruchamiać na VirtualBox, a mogą być problemy z grafiką 3D i nie wiem czy będę w stanie uruchomić wersje od 13.04 wzwyż.

    Zostaw komentarz:


  • Rafix
    odpowiedział(a)
    Ok, ale wy piszecie ten instalator czy co? Bo ja się w tym pogubiłem....
    Zrobienie prostego instalatora na wszystkie dystrybucje Linux w bashu+zenity (lub w zastępstwie w zwykłym terminalu) to żaden problem przecież, a sposobów jest więcej niż użytkowników. Użytkownika ma to gdzieś czy będzie to w /opt czy /usr/local czy katalogu użytkownika - przede wszystkim to się instalować na 2 kliknięcia i działać.

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    Nie wzywaj Imienia Pana nadaremno Fajnie, że łapiesz mnie za słówka, naprawdę super z Twojej strony! Zaprawdę powiadam Tobie, że WebUpd8 Team umieszcza w nim (a dokładnie np. w "/var/cache/oracle-jdk7-installer/") ściągane archiwum z jdk i przechowuje je tam do następnej aktualizacji, żeby niepotrzebnie nie pobierać tego samego archiwum gdy wydadzą aktualizację samego instalatora.
    Dla zwykłego użyszkodnika, który nie ma prawa używać sudo, a Jego Wysokość Admin nie zainstalował w /opt/GG dla wszystkich, instalator pobierałby i przechowywał (lub nie) archiwum gdzieś w katalogu tegoż użyszkodnika. Tylko, że kiedy ostatnio to sprawdzałem, GG Networks w linku do archiwum nie umieściło numeru wersji.
    Linki wyglądają następująco:
    - wersja 32-bit: http://im-updates.gg.pl/files/release/linux32
    - wersja 64-bit: http://im-updates.gg.pl/files/release/linux64
    więc wget zapisze archiwum jako linux32 lub linux64. Można mu podać opcję -O z odpowiednią nazwą pliku. Zaletą braku numeru wersji jest to, że nie trzeba będzie zmieniać linków, a pobrana zostanie zawsze najnowsza wersja. Wadą, że wersję GG można poznać dopiero po ściągnięciu archiwum, które do najmniejszych nie należy.
    Sens trzymania gdzieś na dysku archiwum jest taki, żeby w razie potrzeby szybko rozpakować je bez ściągania z Internetu, a aktualizacja GG instalowanego dla wszystkich (w odróżnieniu od - dla pojedynczych użytkowników), a właściwie dbanie o to, żeby wersja zainstalowana była tą samą co aktualna, byłoby w odpowiedzialności admina. Z wielką władzą idzie wielka odpowiedzialność.

    Zostaw komentarz:


  • Sweetashny Miszcz
    odpowiedział(a)
    /var/cache? Jezusie... Co za konwencja to proponuje?!

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    Ja to sobie wyobrażam ten skrypcik podobnie jak w Dropbox, tzn. jak najszybsze uruchomienie GG i ewentualnie instalacja, jeśli nie jest zainstalowany. Zanim uruchomi GG sprawdzałby czy istnieje /opt/GG/gghub, jeśli tak - to ustawia odpowiednio GG_PATH i uruchamia gghub, jeśli nie, to sprawdza czy istnieje $HOME/.local/GG/gghub i robi tak jak wyżej, jeśli nie to sprawdza czy istnieje zapisane wcześniej archiwum z GG (np. w /var/cache/gg-installer/) i jeśli tak to rozpakowuje je do $HOME/.local/, a jeśli nie istnieje to ściąga z netu i rozpakowuje. To tak z grubsza. Można zrobić dwie wersje, dla i386 i dla amd64, w celu uproszczenia samego skryptu, lub jedną, żeby w przyszłości powstała jedna paczka, a nie dwie. Byłbym za dwiema wersjami, bo będzie prostsze do napisania, a sam skrypt wymagałby bash, wget i tar. Instalowanie w /opt/GG można umieścić w innym skrypcie lub dołączyć do tamtego, np. jeśli ma odpowiednie uprawnienia do zapisu w /opt (tzn. był uruchomiony z sudo). Pozostaje kwestia konta gościa, nie wiem jak mógłby sprawdzić, że jest uruchomiony z konta gościa, ale załóżmy, że wyjście w whoami byłoby sprawdzane czy zawiera guest lub czy $HOME znajduje się w /tmp, skrypt musiałby rozpakować archiwum do $HOME/.local nawet jeśli istnieje /opt/GG/gghub. Poprawcie mnie jeśli się mylę, bo pisałem na szybko.

    Zostaw komentarz:


  • epsilon
    odpowiedział(a)
    A moze by to zrobic tak.
    Bylby sobie skrypt instalatora, ktory oferowalby na starcie 2 scenariusze:
    1) instalacja do /opt/GG
    skrypcik prosi o haslo roota, po czym
    - zaklada w systemie nowe konto i nowa grupe np. gaduuser i gadugroup
    - dorzuca do pliku sudoers (nie mam teraz glowy do szukania skladni) ze kazdy user moze wywolac komende /opt/GG/gghub (albo jakis plik co uruchamia updater)
    na prawach gaduuser.gadugroup
    - kopiuje pliki gg do /opt/GG i nadaje im wlasciciela na gaduuser.gadugroup rwx 775
    - linkuje gg.desktop, ikonki, itp do odpowiednich miejsc + dodaje sie ewentualnie do PATH

    2) instalacja do katalogu zwyklego usera np .local/GG
    tutaj kopiuje pliki na prawach biezacego usera oczywiscie, do jego katalogu
    i podlinkowuje tam gdzie trzeba gg.desktop, ikonki, itp do odpowiednich miejsc tylko dla tego usera
    tutaj sprawa updatera jest rozwiazana jak teraz

    3) pozostaje jeszcze trzecia opcja, sami sobie kopiujemy do lokalizacji jakiej chcemy
    i ustawiamy takie prawa i wlasciciela jak chcemy, przed aktualzacja zmieniamy prawa
    na takie zeby mogl sie zaktualizowac...

    a teraz uruchomienie
    zwykly user uruchamia plik-skrypt "gg", tak jak teraz
    skrypt sprawdza czy "gghub" ma wlasciela gaduuser.gadugroup
    1) jesli tak robi sudo (gaduuser.gadugroup) /opt/GG/gghub (skladni nie pamietam) robi ewentualnie sobie aktualizacje i sie wylacza
    skrypt nastepnie uruchamia go jeszcze raz "gghub" juz na prawach zwyklego usera, czyli z mozliwoscia tylko uruchamiania i czytania, plikow z /opt/GG
    2) jesli plik gghub nie ma wlasciciela gaduuser.gadugroup, to sprawdza czy uruchamiajacy "gg" jest wlascicielem pliku gghub
    jesli tak to uruchamia sie tak jak teraz, ewentualnie sie aktualizuje
    3) ostatnia opcja ze wlasciciel gghub i uruchamiajacy to inne konta, wtedy po uruchomieniu updatera jezeli sa aktualizacje to wyskakuje komunikat, ze
    program nie zostal zaktualizowany, ze wzgledu na brak dostepu... i zakonczenie skryptu i gg.

    pozostaje kwestia uruchamiania "gghub" tak zeby wiedzial czy to uruchomienie przed aktualizacja czy po aktualizacji,
    moze przez parametr albo jakis dodatkowy plik, tworzony przed aktualizacja, a usuwany po lub jej braku...


    To tylko taka jakby koncepcja, i nie jestem przekonany czy to sie da zaimplementowac na tej wersji co jest. W kazdym razie
    nie chcialbym byc zmuszonym do instalacji gg za pomoca jakiegos deb'a czy rpm'a z poziomu root'a.
    i wszystko zeby bylo w jednym miejscu, odinstalowywuje przez usuniecie...

    Niestety ale o programowaniu mozna by rzec mam juz obecnie niewielkie pojecie, o webapp nie wspomne.
    Zobaczymy zreszta jak bedzie wygladal plik z wersja linuxowa gg w nastepnym wydaniu, bo moze nasze rozwazania
    nie sa warte swieczki...

    PS. powyzsze pisane po piwie, wiec nie zamierzam bronic powyzszego jak Monte Cassino
    wlasciwie to mnie sytuacja obecna odpowiada...

    aha oczywiscie mozliwe ze gg dziala zupelnie inaczej z ta aktualizacja, niz mysle wiec cale moje rozwazania mozna potluc o kant d...
    Ostatnio edytowany przez epsilon; [ARG:4 UNDEFINED].

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    Podlinkowanie, tak jak to robi Chrome, nie pomoże, bo skrypt gg ustawi GG_PATH w ten sposób, że nie znajdzie gghub. Napisanie skryptu podobnego do tego z archiwum z GG jest formą podlinkowania, tylko że bez symlinka. Fajnie jest rozwiązana sprawa aktualizacji JDK od Oracle (dawniej od Sun, zanim Oracle ich nie wykupiło). Zgodnie z licencją nie można dystrybuować ich oprogramowania na własną rękę, więc gdy Java zostaje zaktualizowana, WebUpd8 zamieszcza paczkę deb, która podczas konfiguracji ściąga archiwum ze strony Oracle i instaluje je w systemie.

    PS. Dobrym przykładem na samo-aktualizację jest dropbox, który wypuścił pakiet deb instalujący skrypt, który służy do kontrolowania dropbox'a, a jeśli nie znajdzie zainstalowanego w katalogu użytkownika zamkniętego składnika, to ściąga go i instaluje, a dropbox aktualizuje się w tle podczas pracy. Skoro gg i tak musiałoby być uruchamiane ze skryptu, to może on robić coś więcej poza uruchamianiem, np. instalować jeśli zajdzie potrzeba i sprawdzać integralność oraz autentyczność GG.
    Ostatnio edytowany przez wrzomar; [ARG:4 UNDEFINED].

    Zostaw komentarz:


  • Sweetashny Miszcz
    odpowiedział(a)
    Zamieszczone przez epsilon Zobacz posta
    @wrzomar @Sweetashny Miszcz
    W informatyce mozna robic rzeczy na rozne sposoby zaleznie od potrzeb czy po prostu wiedzy. Ale to nie powod aby toczyc o to swiete wojny.
    Na forach linuxowych to juz specyfika, ze poszczegolne klany (uzytkownicy debiana slackware itd itd) udowadniaja innym wyzszosc swojej dystrybucji.
    Tak przynajmniej kiedys bylo ale przeciez to do niczego nie prowadzi na dobra sprawe. Malo tego dochodzi w koncu do "wycieczek osobistych".
    Roznorodnosc linuxa to jego zaleta i wada, zalezy od tego jakie ma sie priorytety.
    Wiec zamiast spierac sie o wyzszosc takich swiat nad innymi, niewazne kto ma w tym przypadku racje, wezmy sie raczej za rozwiazanie
    ktore bedzie jesli nie wszystkim pasowac, to przynajmniej nie bedzie utrudniac zycia.
    Ja lubię spory, tylko argument, że nie dla /opt/GG bo nie mnie zaczyna już denerwować.

    Zamieszczone przez epsilon Zobacz posta
    @wrzomar
    gg.desktop moze byc chyba przeciez w .local tak samo ikony, chociaz w pliku gg.desktop mozna podac pelna sciezke dla ikon do /opt. Pozostaje kwestia
    innych uzytkownikow na kompie, ale to chyba mozna zalatwic podczas pierwszego uruchomienia.
    do ldconfig mozna dodac sciezke przeszukiwania do /opt... ale po co, o ile sie nie myle to gg podczas kompilacji dostaje ?wzgledna? sciezke gdzie ma szukac.
    A skrypt gg do uruchomienia pobiera sciezke katalogu w ktorym jest jako parametr, zeby pewnie wiedziec gdzie szukac reszty.

    A jak ta sprawe rozwiazal skype? W niektorych dystrybucjach widze paczke ze skype. Nie wiem jak teraz ale on sie wczesniej sam nie aktualizowal.
    Mysle ze samoaktualizacja ma swoje zalety i to chyba coraz popularniejsze.
    Ja bym nie dodawał /opt do ścieżki ldconfig, ponieważ GG przychodzi do systemu z własnymi bibliotekami, które już w nim powinny być. Poza tym to i tak jest bezcelowe.
    Jedyna rzecz, jaką można by zrobić to zalinkowanie /opt/GG/gg do /usr/bin/gg, jak to robi Chrome.

    Skype to jest nieciekawy obiekt... To coś ma zawsze ze sobą problemy zwłaszcza na poziomie, że w paczkach 64-b jest 32-b binarka. Poza tym Skype grzecznie się aktualizuje przez managera pakietów.

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    @epsilon
    Skype sprawę rozwiązał tak, że są dwa pakiety: skype i skype-bin - ten drugi 32-bitowy i ukrywa co się w nim znajduje. W drzewie katalogów porozsiewali dokumentację, pomoc, ikony i inne pliki w różnych podkatalogach /usr/share, a skype jest plikiem binarnym w /usr/bin i ma na oko 30MB oraz korzysta z bibliotek współdzielonych (tylko których?), a na inżynierię wsteczną MS reaguje jak diabeł na wodę święconą. Skype aktualizuje się na Ubuntu tak jak inne aplikacje instalowane z repo. Samoaktualizacja ładnie wygląda w Firefoksie prosto od Mozilli, ostatnio w Ubuntu dają najnowsze wersje więc nie wiem czy nadal tak przebiega, ale podczas aktualizacji ściągane były tylko te pliki, które uległy zmianie.
    Plik gg.desktop może być w .local, ale wtedy będzie dostępny tylko dla jednego użytkownika, więc plik potrzebny dla Messaging Menu powinien trafić do $HOME/.config/indicators/messages/applications/ i zawierać ścieżkę do gg.desktop. Niestety to menu ma problem ze znalezieniem ikony nawet jeśli w pliku desktop podana będzie pełna ścieżka do niej, łapie tylko jeśli wpis Icon będzie miał wartość np. gg, ale żeby mógł znaleźć w ten sposób ikonę do programu, musi ona znajdować się w pixmaps, w tym przypadku w ~/.local/share/pixmaps wystarczy dowiązanie do gg.png, ale nie wiem czy będzie ten katalog uwzględniany w poszukiwaniu ikon. Dowiązanie, bo nie wiem czy skopiowanie gg.png nie złamałoby prawa. Niestety nie mamy bezpośredniego wpływu na to jak GG działa, więc możemy rozmawiać o miejscach i uprawnieniach. Setuid'u nie można w tej chwili wykorzystać, bo nie ma wydzielonego updater'a, zmiana uid na innego użytkownika na czas aktualizacji również wymaga modyfikacji samego GG, najrosądniejsze jest w tej chwili tymczasowe zmienienie uprawnień/własności do katalogu z GG, jeśli zostanie wykryte, że istnieje nowsza wersja GG, sprawdzenie antywirusem czy jest OK po aktualizacji i ponowna zmiana uprawnień/własności, aby zabezpieczyć przed zmianami.
    W skrypcie gg jest ustawiana zmienna środowiskowa GG_PATH, która jest ustawiana na katalog w którym jest uruchamiany tenże skrypt, nie wiem czy ta zmienna jest używana później przez GG po uruchomieniu, we własnym skrypcie można ustawić tę zmienną "na sztywno" na ścieżkę do GG, np. /opt/GG.
    Ścieżki do GG do ldconfig nie trzeba podawać, a nawet nie powinno, skoro tam są wersje bibliotek używane tylko przez GG i wyrządziłyby one więcej szkód niż pożytku.
    Nie wiem co masz na myśli, mówiąc o załatwianiu przy pierwszym uruchomieniu. Można by było umieścić GG w katalogu do którego pełen dostęp mieliby wszyscy użytkownicy, ale byłoby to jeszcze gorsze rozwiązanie niż trzymanie GG w katalogu użytkownika.

    PS. Google dla Chrome i Earth problem aktualizacji rozwiązał tworząc własne repo z Chrome, Earth i resztą. Scribus również tak postąpił dla Ubuntu i Debiana. Niektóre projekty, jeśli licencje na to pozwalają, mają PPA na launchpadzie, ale są one prowadzone przez użytkowników, a nie developerów tych projektów (pewnie są wyjątki, ale żaden mi nie przychodzi do głowy).
    Ostatnio edytowany przez wrzomar; [ARG:4 UNDEFINED].

    Zostaw komentarz:


  • epsilon
    odpowiedział(a)
    @wrzomar @Sweetashny Miszcz
    W informatyce mozna robic rzeczy na rozne sposoby zaleznie od potrzeb czy po prostu wiedzy. Ale to nie powod aby toczyc o to swiete wojny.
    Na forach linuxowych to juz specyfika, ze poszczegolne klany (uzytkownicy debiana slackware itd itd) udowadniaja innym wyzszosc swojej dystrybucji.
    Tak przynajmniej kiedys bylo ale przeciez to do niczego nie prowadzi na dobra sprawe. Malo tego dochodzi w koncu do "wycieczek osobistych".
    Roznorodnosc linuxa to jego zaleta i wada, zalezy od tego jakie ma sie priorytety.
    Wiec zamiast spierac sie o wyzszosc takich swiat nad innymi, niewazne kto ma w tym przypadku racje, wezmy sie raczej za rozwiazanie
    ktore bedzie jesli nie wszystkim pasowac, to przynajmniej nie bedzie utrudniac zycia.

    @wrzomar
    gg.desktop moze byc chyba przeciez w .local tak samo ikony, chociaz w pliku gg.desktop mozna podac pelna sciezke dla ikon do /opt. Pozostaje kwestia
    innych uzytkownikow na kompie, ale to chyba mozna zalatwic podczas pierwszego uruchomienia.
    do ldconfig mozna dodac sciezke przeszukiwania do /opt... ale po co, o ile sie nie myle to gg podczas kompilacji dostaje ?wzgledna? sciezke gdzie ma szukac.
    A skrypt gg do uruchomienia pobiera sciezke katalogu w ktorym jest jako parametr, zeby pewnie wiedziec gdzie szukac reszty.

    A jak ta sprawe rozwiazal skype? W niektorych dystrybucjach widze paczke ze skype. Nie wiem jak teraz ale on sie wczesniej sam nie aktualizowal.
    Mysle ze samoaktualizacja ma swoje zalety i to chyba coraz popularniejsze.

    Zostaw komentarz:


  • wrzomar
    odpowiedział(a)
    @Sweetashny Miszcz
    Mój brak wiedzy podpowiada mi, że /usr/local/lib różni się od /usr/local/share tym, że ten drugi nie jest przeszukiwany przez ldconfig w poszukiwaniu bibliotek. Popraw mnie jeśli się mylę, ale /opt również nie byłby przeszukiwany, podobnie jak jakiś katalog w katalogu domowym użytkownika, do którego zostałoby wypakowane archiwum z GG, a GG bez tego i tak działałoby.

    @epsilon
    W /usr/bin lub /usr/local/bin wystarczy jeden plik, który pozwoli na uruchamianie gg bez podawania pełnej ścieżki do niego. Nawet jeśli całe GG umieścić w /opt to i tak pliki gg.desktop oraz ikony będą musiały być porozrzucane po /usr/share. GGTeam wspiera wersję na Ubuntu, ale i tak nie integruje się ona w pełni z Unity (i dobrze, bo wtedy na pewno inni nie mogliby go używać), a używanie systray-whitelist działa w wersjach do 12.10 włącznie.

    Zostaw komentarz:


  • Sweetashny Miszcz
    odpowiedział(a)
    @wrzomar
    Ponieważ nie jestem już w stanie walczyć z Twoim brakiem wiedzy i upartym wtrącaniem swoich 5 groszy nie mając najmniejszego pojęcia o tym, co piszesz - przyznaję Ci rację.

    Zostaw komentarz:


  • epsilon
    odpowiedział(a)
    @wrzomar
    Moze lepiej osobne konto+grupe aby byl porzadek. Zreszta chyba nie we wszystkich distrach sa wszystkie konta systemowe.
    Co do suid to o ile sie nie myle, Fedora pozbyla sie ich wszystkich na rzecz selinux, albo tak ma byc dopiero. Wiec to tez chyba
    nie jest zbyt nowoczesne podejscie.
    Mysle ze lepsze bedzie w skrypcie uruchomieniowym gg, komenda sudo (na konto to gadu) zeby sie mogl zaktualizowac,
    po czym nastapi dalsze uruchomienie programu juz na prawach uzyszkodnika ktory go uruchomil... Oczywiscie trzeba bedzie
    dorzucic linijke do pliku sudoers.

    I jeszcze jedno my tu gadu gadu co gdzie powinno byc i na jakich prawach, a przejmowac sie powinnismy tym ze ggteam
    wspiera tylko wersje na ubuntu, ktore co jak niektorzy wieszcza oddala sie coraz bardziej od innych dystrybucji. Wiec
    kto wie ilu z nas bedzie go moglo sensownie uzywac w dluzszej perspektywie ...
    Aha lokalizacja w /opt/GG ma jeszcze inna dobra ceche, latwo usunac gg z systemu, a nie szukac plikow po /usr/local/bin lib...
    Ostatnio edytowany przez epsilon; [ARG:4 UNDEFINED].

    Zostaw komentarz:

Pracuję...
X