Flash w Debianie - żałość.
15 czerwca, 2008
Na typowym desktopie zwykle niezbędny jest flash, najlepiej ten od Adobe. W Debianie sprawę załatwia instalacja pakietu flashplugin-nonfree, który zajmuje się dostarczeniem flasha. Wszystko działało pięknie i bezbłędnie, aż do wczoraj. Przy okazji porządków w systemie ojca postanowiłem dokonać aktualizacji flasha i... pojawiły się problemy. Przy okazji przyjrzałem się bliżej narzędziom i znalazłem parę "śmiesznostek/żałostek".
Po pierwsze, skrypt dodający flasha w systemie działa nie w ten sposób, że tworzy paczkę .deb, tylko ściąga i instaluje flasha z tar.gz. Oznacza to, że jeśli Adobe wypuści nową wersję, to że nie ma eleganckiej debianowej metody na sprawdzenie wersji flasha. Żeby zaktualizować wersję po wydaniu nowej należy zrobić dpkg-reconfigure -plow flashplugin-nonfree, dodatkowo podając ścieżkę jako pustą, bo inaczej wykorzysta już pobraną paczkę. W sumie skrypty pakietujące google-earth czy javę działają podobnie, ale o tyle lepiej, że tworzą paczkę .deb i nie robią cudów przy uprade wersji.
Sprawa druga. O ile to co opisałem można(?) przeboleć jeszcze, to wczoraj zdarzyła się sytuacja następująca. Robię dpkg-reconfigure, podaję pustą ścieżkę, niby coś pobiera... i zgłasza błąd sumy md5. Ponieważ korzystam tam z badram, gdyż pamięć jest uszkodzona, to pierwsze podejrzenie skierowałem w tę stronę - albo patch nie działa, albo coś. Niesłusznie. Na wcześniejszym kernelu problem jest ten sam, a ręczne usunięcie scache'owanego tar.gz ujawniło, że błąd jest w samym pobieraniu.
Sprawa trzecia: objawy błędu. Otóż błąd pobierania objawiał się tak, że (mówię o wersji w usuniętą scache'owaną wersją) przy instalacji/rekonfiguracji proces radośnie zawisał i czekał na coś. I czekał. I czekał... Sprawdziłem na innej maszynie, innym systemie - dokładnie to samo się działo. Szybki strace ujawnił, że faktycznie czeka na zakończenie procesu. Zapewne pobierania pliku.
Ponieważ instalator (/usr/sbin/update-flashplugin-nonfree) jest napisany w bashu, to pokusiłem się o szybki debug. Chyba wolałbym tam nie zaglądać...
[ `whoami` = "root" ] || die_hard "must be root"
Znaczy się, jeśli przyszłoby komuś do głowy przypisanie UID=0 dla innego użytkownika w systemie, to i tak nie będzie miał prawa do wykonania skryptu. I odwrotnie, jeśli ktoś nazwie nieuprzywilejowanego użytkownika root, to skrypt będzie próbował się wykonać.
DOWNLOADFILE="flashplugin-nonfree-lastminute.gz" DOWNLOADURL="http://people.debian.org/~bartm/flashplugin-nonfree/$DOWNLOADFILE" [ ! -f /home/bartm/src/flashplugin-nonfree/bartm_debug ] || DOWNLOADURL="http://127.0.0.1/bartm/$DOWNLOADFILE"
To jest dopiero miodzio. Po pierwsze, pliku ze skryptem instalującym nie pobiera od Adobe bezpośrednio, tylko z people.debian.org. W sumie możnaby to wybaczyć, tylko od 2 dni ww. maszyna leży, więc adobowego flasha w Debianie de facto nie ma. Widzimy też piękną filigranową konstrukcję z podwójnym przeczeniem:
[ ! -f plik ] || cośtam
Po ludzku: Jeśli warunek nieistnienia pliku nie jest spełniony, to cośtam. Noż xhejn! Bo napisanie:
[ -f plik ] && cośtam
nie robi tego samego (po ludzku: jeśli warunek istnienia pliku jest spełniony, to cośtam) i nie jest czytelniejsze?
Na pocieszenie: to tylko wersja z unstable. W stable pakietu nie ma, w Lennym nie ma (i z tego co wiem - nie będzie). A jakby ktoś bardzo potrzebował teraz zainstalować flasha, to wystarczy utworzyć w systemie plik /home/bartm/src/flashplugin-nonfree/bartm_debug i skonfigurować serwer WWW tak, by pod 127.0.0.1/bartm/ udostępniłał któryś wcześniejszy instalator.
PS. bug dotyczący niemożności odinstalowania paczki jest już zgłoszony. Bo oczywiście żeby usunąć, też pobiera. ;)
1. Michał Górny napisał(a):
15 czerwca 2008, 08:47:20
Aż sobie w zakładki wrzucę ^^.
2. rozie napisał(a):
15 czerwca 2008, 09:02:48
Michał Górny: Śmiało. To co zobaczyłem w tym pakiecie, to crappy crap. A nie mam jakichś zahamowań, by nie nazwać crapu crapem tylko dlatego, że jest w mojej ulubionej dystrybucji™. Co więcej, prawdopodobnie ten plik, który jest pobierany, to skrypt do ściągania paczki. Czyli, de facto, za plecami, bez wersjonowania jest zmieniana binarka (bo konfig to na dysku powinien być...). A to się kwalifikuje na reportbuga. Jak people.debian.org wstanie, to zobaczymy. ;)
3. Livio napisał(a):
15 czerwca 2008, 12:26:30
Nie prościej pobrać .tar.gz i .so wrzucić gdzie trzeba i ew. dowiązać :) ?
4. Michał Górny napisał(a):
15 czerwca 2008, 15:00:56
Livio: nie prościej mieć porządne distro, które samo pobierze odpowiednie pliki, wrzuci tam gdzie trzeba i ładnie je zapisze w bazie pakietów na równi z softem redystrybutowalnym?
5. Livio napisał(a):
15 czerwca 2008, 15:33:13
Wiesz, Adobe daje RPM-y, więc porządne dystrybucje nie muszą się męczyć :> >
6. Michał Górny napisał(a):
15 czerwca 2008, 15:37:15
Porządne dystrybucje nie potrzebują niczyjej łaski.
7. rozie napisał(a):
15 czerwca 2008, 16:37:41
Livio: Niezupełnie prościej. Najlepiej, jakby był „natywny” .deb. Potem, mógłby być „pakowacz”, czyli jakieś make-jpkg czy make-googleearth-package. Potem – to co jest teraz (tylko porządne), czyli automat, który zaciągnie i wypakuje stosownie. No a dopiero potem robótki ręczne są...
Nawiasem, jakby to coś, co doklejasz, nie pojawiało się na moim feedzie joggerowym, to będę wdzięczny. I zgłoś buga sparrowowi.
8. matiit napisał(a):
15 czerwca 2008, 17:49:31
Jak dobrze, że są PKGBUILDY – zobaczcie jak to jest zrobione w archu :P
9. salciarz napisał(a):
15 czerwca 2008, 18:56:27
http://debian-multimedia.org/dists/unstable/main/binary-i386/package/flashplayer-mozilla.php
Jest i paka dla sida.
10. rozie napisał(a):
15 czerwca 2008, 19:03:07
salciarz: Dla sida (i tylko dla niego) to jest to, o czym pisałem. a ww. flashplayer-mozilla jest także dla stable, ale nie jest z oficjalnego repo. ;)
11. Livio napisał(a):
15 czerwca 2008, 20:10:08
Michale, trochę dystansu by Ci naprawdę nie zaszkodziło.
12. Michał Górny napisał(a):
15 czerwca 2008, 20:33:56
Livio: przyganił kocioł garnkowi.
13. Livio napisał(a):
15 czerwca 2008, 20:34:29
Zdaje mi się, czy ktoś tutaj się ja kogoś zgłości i ma ochotę udusić makaronem?
14. mruwek napisał(a):
16 czerwca 2008, 01:05:31
Rozie: debian-multimedia.org i problem z głowy.
[edit]Ślepota nie boli. Salciarz już wspomniał.
15. rozie napisał(a):
16 czerwca 2008, 06:39:16
mruwek: Faktycznie paczka z debian-multimedia wygląda lepiej – binarka jest w środku, a nie jakieś skrypty. Żeby było śmieszeniej, to używałem tej paczki kiedyś, podobnie jak kilku innych z tego repo. Poczekamy do następnego padu i wymienimy (o ile da się odinstalować przy niedziałającym people.debian.org ;/).
16. Piotr Pyclik napisał(a):
16 czerwca 2008, 13:53:51
„Porządne dystrybucje nie potrzebują niczyjej łaski.”
Michał: a która to jest ta porządna dystrybucja?
17. Livio napisał(a):
16 czerwca 2008, 13:54:43
Pewnie Gentoo :> .
18. mruwek napisał(a):
16 czerwca 2008, 13:55:43
Pewnie? Co za fatalne przypuszczenie. Oczywiście, że prócz Gentoo nie ma innych „porządnych” dystrybucji. Cała reszta to zlepki aplikacji dla plebsu.
19. Livio napisał(a):
16 czerwca 2008, 13:56:25
Przepraszam, czcigodny sensei, Mruwku. Nie rzucaj na mnie złego uroku!
20. Piotr Pyclik napisał(a):
16 czerwca 2008, 13:58:23
Eee tam, szkoda. Kompilowaniu mówię nie.
21. matiit napisał(a):
16 czerwca 2008, 13:58:57
ty tylko wpisujesz emerge program, kompiluje kompilator
22. Livio napisał(a):
16 czerwca 2008, 14:00:38
Procesory szybkie, a i RAM-u każdy ma setki gigabajtów, nie ma się o co martwić. Wystarczy wyjść na całodzienny spacer i masz kernela i basha skompilowanego :D .
23. mruwek napisał(a):
16 czerwca 2008, 14:00:39
A ty możesz iść na spacer z Dziewczyną. Cóż za wspaniałe distro! Dba nawet o Twoje relacje z rodziną i przyjaciółmi.
24. Piotr Pyclik napisał(a):
16 czerwca 2008, 14:01:00
Zapewniam cię, że wiem co to Gentoo. :) Nie widzę tylko sensu kompilowania na lewo i na prawo, przerabiałem to na FreeBSD – bez realnych korzyści.
25. Livio napisał(a):
16 czerwca 2008, 14:01:07
Michał ma rację w każdej dziedzinie.
26. matiit napisał(a):
16 czerwca 2008, 14:01:09
dokładnie, a jak się kompilacja sypnie to Ci może wysłać smsa na tel :)
27. Livio napisał(a):
16 czerwca 2008, 14:01:35
Wtedy masz pretekst, żeby wrócić do domu i zaciągnąć dziewczynę do łóżka. Dba o wszystko to Gentoo!
28. matiit napisał(a):
16 czerwca 2008, 14:02:04
to trzeba często hard masked pakiety instalować :)
29. Piotr Pyclik napisał(a):
16 czerwca 2008, 14:04:22
Hmm, ale nie potraficie tego wszystkiego robić bez Gentoo? ;)
30. Livio napisał(a):
16 czerwca 2008, 14:04:43
Piotrze, ale jak, kiedy tylko w Gentoo masz okazję wyjścia z domu?
31. Piotr Pyclik napisał(a):
16 czerwca 2008, 14:16:54
Heheh ;) Ostro. ;)
32. mruwek napisał(a):
16 czerwca 2008, 14:28:33
Dziwne tylko, że Michał jeszcze nie zabrał głosu. Może na spacerze właśnie przebywa?
33. Livio napisał(a):
16 czerwca 2008, 14:28:58
Myślę, że powinniśmy brać z niego przykład.
34. Piotr Pyclik napisał(a):
16 czerwca 2008, 14:52:15
Za kompilatory panowie! ;)