Po aktualizacji nie działa nakładka na gufw (nakładka na ufw). Przy uruchamianiu wyrzuca błąd:
Cytat
/usr/bin/gufw: linia 2: [: =: oczekiwano operatora jednoargumentowego
Faktycznie, nie działa. Ale wystarczy przywrócić gufw
do poprzedniej wersji i znów działa.
Cóż, błędy się zdarzają tak jak w Windows, ale mam wrażenie, że ich naprawa jest dużo prostsza właśnie pod GNU/Linuksem.
Co prawda nie używam filtra pakietów u siebie bo nie widzę najmniejszego sensu, ale zainstalowałem z ciekawości żeby zobaczyć cóż to za błąd jest w tej drugiej linii skryptu.
I cały ten skrypt służy tylko do tego aby wykryć czy działamy na Waylandzie czy na X-ach:
[napcok@mabox ~]$ cat /usr/bin/gufw
#!/bin/bash
if [ $(loginctl show-session $(loginctl|grep $(whoami)|sort -n|tail -n 1 |awk '{print $1}') -p Type) = "Type=wayland" ]; then
xhost +si:localuser:root
fi
c_user=$(whoami)
pkexec gufw-pkexec $c_user
Z ciekawości… @Manonfire @maciekz - może ktoś z was wkleić ten plik po przywróceniu do poprzedniej, działającej wersji?
Zainstalowałem wersję 19.10.0-2. Działa, ale przy uruchamianiu wyskakuje w konsoli ten sam błąd, a zamiana plików nic nie daje. W starszej wersji /usr/bin/gufw wygląda tak:
#!/bin/sh
if [ $(loginctl show-session $(loginctl|grep $(whoami)|sort -n|tail -n 1 |awk '{print $1}') -p Type) = "Type=wayland" ]; then
xhost +si:localuser:root
fi
c_user=$(whoami)
pkexec gufw-pkexec $c_user
if [ $(loginctl show-session $(loginctl|grep $(whoami)|sort -n|tail -n 1 |awk '{print $1}') -p Type) = "Type=wayland" ]; then
xhost -si:localuser:root
fi
U mnie wygląda tak samo. Tylko działa. Natomiast ta nowa, nie działająca wersja nie generowała żadnego komunikatu. Po prostu się nie uruchamiała. Skrypt gufw
uruchamia kolejny skrypt gufw-pkexec
, który z kolei wywołuje skrypty w Pythonie. Za skomplikowane jak dla mnie.
Jeśli nie działacie na Waylandzie, a z tego co widzę to nie - to można usunąć całego tego if-a.
Tak czy siak dziwne dla mnie jest to, że nie ma zgłoszenia błędu pod ogłoszeniem o aktualizacji na oficjalnym forum, nie znalazłem też nigdzie na stronie gufw.
Czyżby nikt nie używał tego?
Może nikt nie używa Ja użyłem, bo się nudziłem, zresztą jak to bezrobotny człowiek. Najdziwniejsze jest to, że przy starej wersji wywala ten sam błąd, ale działa dobrze
Usunięcie if-a nic nie daje. Najwyraźniej tego programu używa go tylko @maciekz oraz ja. Mam zainstalowane Manjaro na VirtualBoksie (staram się zachować w miarę podobną konfigurację jak na fizycznej maszynie) i tam też nowy gufw
się nie odpala.
Bardzo to wszystko dziwne… znalazłem jeszcze wątęk o gufw na starym forum - Wątek: [SOLVED] GUFW nie uruchamia się | manjaro.pl
tam też nic konkretnego nie udało się ustalić
Myślę, że gufw używany jest nieczęsto - ja go uruchamiam, usuwam zbędne profile, zmieniam dwa ustawienia i … najczęściej zapominam o sprawie. Mógłbym zrobić, to w terminalu, ale cóż, tak wygodniej.
Działa komenda:
$ sudo python3 /usr/lib/python3.8/site-packages/gufw/gufw.py
Twoje rozwiązanie sugeruje ustawienie python3 na defaultowy co powinno rozwiązać problem. Nie korzystam gufw ale może ktoś spróbować.
Problem leży w pliku gufw-pkexec
. Słabo się znam na skryptach czy to w BASH’u czy czymkolwiek innym, ale to są zupełnie inne skrypty w kwestii odwołań do ścieżki dostępu skryptów Pythona. Jak ktoś obeznany sobie porówna te skrypty to z pewnością znajdzie błąd nie pozwalający na uruchomienie gufw
. Podmiana gufw-pkexec
z wersji 19.10.0-2 rozwiązuje sprawę.
Parafrazując Diunę Franka Herberta: “skrypty wewnątrz skryptów w skryptach”.
Moje rozwiązanie jest, o czym wcześniej nie wspomniałem, tylko obejściem na daną chwilę. Jest uciskiem na uszkodzoną tętnicę - na chwilę, może godzinę, da radę, ale w dłuższej perspektywie może być kłopotliwe, bo choćby za chwilę zmieni się wersja Python’a z 3.8 na powiedzmy 4.0.
To tylko szybkie obejście na już.
Wystarczy w pliku /usr/bin/gufw-pkexec zmienić w drugiej linijce “print $9” na “print $8” i działa
Jako, że nie jestem programistą to chciałbym się dowiedzieć, co to zmienia. Prócz tego, że gufw
działa.
Rozwiązanie znalazłem gdzieś w necie. Ogólnie chyba chodzi o numer wiersza w pliku, a wiersz nr 9 jest pusty.
U mnie działa, choć wyrzuca komunikat błędu (w konsoli) - taki sam, jak przed modyfikacją:
/usr/bin/gufw: linia 2: [: =: oczekiwano operatora jednoargumentowego
Ale program uruchamia się.
Inne rozwiązanie, również sprawdzone, również u mnie działa, również sieje takim samym błędem, ale chodzi:
Wygląda na to, że problem występuje w wersjach innych niż angielskie (patrz: link powyżej), wiąże się z odmiennym formatem daty (dlaczego ‘świat’ przyjmuje standard ISO, po czym stosuje dalej swoje lokalne tradycje?), i że nie należy przejmować się komunikatem błędu pojawiającym się w konsoli, który nie ma praktycznego znaczenia (na to wygląda), a dotyczy wiersza:
/bin/gufw
--------------------------------------------
if [ $(loginctl show-session $(loginctl|grep $(whoami)|sort -n|tail -n 1 |awk '{print $1}') -p Type) = "Type=wayland" ]; then
Błąd został zgłoszony:
Jeszcze kilka takich tematów i zostanem programistom
Programista, to nie zajęcie, tylko stan umysłu