Aktualizacja do Catalina 10.15.5

Dawno nie było nic o macOS. Jest stabilnie, czyli korzystam i zbyt zadowolony nie jestem. Ostatnio zrobiłem aktualizację do 10.15.5, więc jest okazja do narzekania.

Przede wszystkim, robiłem aktualizację z 10.15.3, nie z 10.15.4, który był wydany pod koniec marca, co też świadczy o tym, że te aktualizacje nie są takie lekkie łatwe i przyjemne, bo lubię mieć aktualny soft. Czynników było oczywiście więcej, taki drobiazg jak średnia wygoda by mnie nie powstrzymał. A to zespół opiekujący się systemami w firmie nie dał zielonego światła od razu, a to pandemia, więc trochę strach, że nie pójdzie i co wtedy, a to dyżury i wypada mieć sprzęt działający. Koniec końców, zdążyli wydać 10.15.3, nim zaktualizowałem.

Sama aktualizacja przypomniała mi, czemu nie jest to miły proces – stąd notka. 5 GB danych do pobrania, więc dużo. Wiedziałem, że to trwa, więc załączyłem i poszedłem precz. Gdy wróciłem, system marudził, że nie umie zamknąć programów. Znaczy głaszcz mnie użytkowniku, pozamykaj i try again. Zamknąłem kilka programów, dłuższą chwilę trwała walka z edytorem Atom. Bardzo nie chciał się zamknąć i koniec końców używałem force quit. Jeśli ktoś jest przyzwyczajony do podejścia linuksowego, gdzie system robi co mu się każe, bez szemrania i dodatkowego popychania – bardzo słabo to wygląda.

Jak już wszystko pozamykałem i w końcu się zrestartował, przypomniała mi się anegdotka o tym jak Windows liczy czas/postęp: ostatnie 5 min/5% trwa kwadrans/jedną trzecią czasu. Jak podczas pobierania wiało optymizmem, że będzie pół godziny, tak pół godziny to zbierał się po reboocie. To już nawet nie tylko Linux, ale nawet Windows jakoś szybciej sobie radzi z aktualizacjami.

Potem, po uruchomieniu, było z górki, za wyjątkiem jednego ostrzeżenia, które wyglądało tak:

Informacja o przestarzałym rozszerzeniu systemowym

Existing software on your system loaded system extension signed by „Fumihiko Kakayama”, which will be incompatible with a future version of macOS. Contact the developer for support.

Zgadza się, nie jest napisane o jaki program chodzi, za to jest imię i nazwisko developera, który podpisał rozszerzenie systemowe. Nie wiem jak czytelnicy, ale ja kojarzę jakiego softu używam, nie kto go jest developerem, a już o rozszerzeniach i osobach je podpisujących nie mam pojęcia. No ale ja truskawki cukrem… Odnośnika brak, w learn more również pustka.

W każdym razie szybkie wyszukanie ujawniło, że chodzi o Karabiner. I jestem trochę przerażony, bo bez tego softu macbook będzie dla mnie nieużywalny praktycznie, przynajmniej w zakresie pisania z pl-znakami. Mam nadzieję, że poprawią lub będzie inna opcja na przemapowanie klawiszy.

Trochę jestem zdziwiony, że nie jest napisane o którą wersję chodzi. Dużą? Małą? Najbliższą? Którąś kolejną?

Darmowy upgrade z Windows 7 do Windows 10

Microsoft zakończył support dla Windows 7 w dniu 14 stycznia 2020. Oznacza to brak aktualizacji, w tym brak poprawek bezpieczeństwa. W idealnym świecie systemy z Windows 7 powinny zniknąć, jako przestarzałe.

W 2016 Microsoft przeprowadzał kampanię promującą darmową aktualizację do Windows 10. Oficjalnie kampania została zakończona, ale mechanizm nadal działa, co oznacza, że technicznie nadal można zaktualizować Windows 7 do Windows 10.

Aby dokonać aktualizacji, wymagany jest oryginalny Windows 7 lub 8 z aktywowaną licencją. Wystarczy pobrać narzędzie ze strony Microsoftu i uruchomić je. Istnieje możliwość stworzenia nośnika, albo aktualizacji bieżącej instalacji, i ta ostatnia możliwość jest najbardziej interesująca. Upgrade’u można dokonać dla dowolnego wariantu systemu (szczegóły w źródle).
Oczywiście przed tak poważną operacją warto zrobić kopię bezpieczeństwa. Na pewno danych, ale na wypadek, gdyby coś poszło źle, warto zrobić także backup systemu, na przykład obraz dysku.

Systemy bez aktualizacji bezpieczeństwa stanowią zagrożenie zarówno dla swoich użytkowników, gdyż może dojść do infekcji i wycieku danych, jak również innych komputerów w sieci, stając się po infekcji częścią botnetu i uczestnicząc w atakach. Z punktu widzenia bezpieczeństwa sprawa jest prosta – trzeba aktualizować.

Czy operacja jest legalna? Nie jestem prawnikiem. Za przemawia fakt, że sam producent udostępnia mechanizm i oferuje możliwość aktualizacji, była nawet specjalna kampania promująca taki upgrade, a system nie różni się od takiego aktualizowanego w roku 2016.

Źródło: https://www.zdnet.com/article/heres-how-you-can-still-get-a-free-windows-10-upgrade/

Catalina

Na początku października została wydana nowa wersja macOS o nazwie kodowej Catalina. Zaktualizowałem wczoraj i z okazji tego, że to mój pierwszy upgrade tego systemu, postanowiłem podzielić się wrażeniami z aktualizacji. Notka z tego jak mi się żyje z macOS nadal jest w planach, w trzech słowach: szału nie ma.

Aktualizacja z opóźnieniem, powody były dwa. Po pierwsze, nie ma tam żadnej zmiany, której specjalnie potrzebuję. Z rzeczy które mnie potencjalnie dotykają widzę koniec wsparcia dla aplikacji 32-bit, zsh jako domyślna powłoka oraz lepsze security za sprawą dodatkowych uprawnień. Po drugie, czekałem na zielone światło od zespołu zajmującego się desktopami w firmie, który sprawdzał, czy soft potrzebny do pracy działa poprawnie. Zresztą wśród użytkowników maków zauważyłem tendencję do tego, by po wydaniu nowej wersji chwilę poczekać, na ujawnienie ew. błędów i ich poprawki.

Przyznaję, że sama aktualizacja jest zrobiona sprawnie, przebiega czytelnie i dość szybko. Dodatkowo przez większość czasu można normalnie pracować na systemie. Na szybkim łączu i dysku SSD pobranie 8 GB i instalacja zajęły nieco ponad godzinę, co uznaję za dobry wynik. Podobny czas zajmuje zaktualizowanie desktopu z Debianem. Pobranie, rozpakowanie, reboot, dłuższe uruchamianie i… jest. I działa.

Za to po instalacji trochę dzieją się cuda. Po części wynikają ze zmiany w security – trzeba pozwalać konkretnym programom na konkretne akcje, ale po części są to zwykłe niedociągnięcia. Przykładowo jedna z pierwszych rzeczy, które mnie spotkały to:

git diff
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Rozumiem, że rozwiązanie jest proste i łatwe do znalezienia, ale szukanie po forach rozwiązania problemu dla czegoś, co powinno się zaktualizować wraz z systemem, bo pochodzi od tego samego wydawcy i można było przewidzieć, że wymaga aktualizacji, skoro jest zainstalowane? Słabe.

Zapowiadanej zmiany powłoki na zsh jeszcze nie doświadczyłem – okazało się, że dla istniejących kont zostaje bash. Można wymusić zmianę ręcznie, co pewnie za jakiś czas zrobię.

W ogóle model zarządzania aktualizacjami aplikacji (nie mylić z systemem) pod macOS jest fatalny, zbliżony do Windowsowego, gdzie każda aplikacja żyje własnym życiem. Centralny manager pakietów, instalacja z użyciem repozytoriów i aktualizacje w jednym miejscu, znane z Linuksa są dużo łatwiejsze i wygodniejsze.

UPDATE Pochwaliłem za wcześnie. Dziś dostałem info, że dostępna jest aktualizacja do 10.15.1. Zacytuję opis z forum:

macOS Catalina 10.15.1 is a fairly significant update, introducing new emoji characters that were added in iOS 13.2 earlier this week, adding support for the AirPods Pro that are launching tomorrow, and bringing Siri privacy controls to the Mac to allow users to opt out of sharing their Siri recordings with Apple.

Jeśli ktoś przypuszcza, że jest mi to wszystko totalnie obojętne, to ma rację. Aktualizacja emoji zajęła pół godziny. I tym razem uważam, że to trochę sporo, skoro chodzi o takie drobiazgi.

Aktualizacja Debiana do Buster

Parę dni temu Debian ogłosił wydanie nowego stabilnego wydania o nazwie kodowej Buster. Aktualizację zacząłem natychmiast, ale dopiero teraz mogę nieco o niej napisać.

Przede wszystkim, pospieszyłem się. Szóstego lipca tylko zerknąłem na newsy i… pomyliłem poprzedniego newsa, dotyczącego wydania wersji 9.9 z wydaniem Bustera. Co prawda rzecz działa się już w trakcie wydawania (co widać było na Twitterze), ale zrobiłem lekki falstart.

Lekko zdziwił mnie brak release notes (zasługa falstartu), ale większość rzeczy mam odseparowanych w kontenerach LXC, więc aktualizacje powinny proste, poza tym, który to już raz? Wziąłem na warsztat przy kawie jedną maszynkę fizyczną i kontenery LXC na niej. Kontenery poszły od kopa w stylu apt-get update && apt-get upgrade && apt-get update && apt-get dist-upgrade. Nie jest to zalecany sposób – w release notes jest napisane, by korzystać z apt, ale nie wiedziałem o tym i… nie miało to znaczenia.

Aktualizacja hypervisora również gładka, kontrolny reboot i… kontenery się nie podnoszą. Co prawda apt-listchanges (polecam!) pisał, że LXC 3 got some significant changes from LXC 2, ale pozwoliłem zmienić konfigurację do nowej wersji, stosowane brakujące linie też były dodane. Wyszukiwarka nie pomagała, ludzie na kanale też nie. Z szybkiego upgrade od kawy zrobiła się godzinna walka z debugiem. Okazało się, że czyste, nowe kontenery z Busterem z minimalnym konfigiem także nie startują (error w loglevel INFO, hmm…):

# create
lxc-create -n test3 -t download -- -d debian -r buster -a amd64

# run
lxc-start -n test3 -l debug -o /tmp/debuuug.txt

# logs
tail -n 8 /tmp/debuuug.txt
lxc-start test3 20190706132233.984 NOTICE   start - start.c:start:2037 - Exec'ing "/sbin/init"
lxc-start test3 20190706132233.985 NOTICE   start - start.c:post_start:2048 - Started "/sbin/init" with pid "8584"
lxc-start test3 20190706132233.985 NOTICE   start - start.c:signal_handler:430 - Received 17 from pid 8582 instead of container init 8584
lxc-start test3 20190706132233.985 DEBUG    lxccontainer - lxccontainer.c:wait_on_daemonized_start:830 - First child 8580 exited
lxc-start test3 20190706132233.999 DEBUG    start - start.c:signal_handler:447 - Container init process 8584 exited
lxc-start test3 20190706132233.999 INFO     error - error.c:lxc_error_set_and_log:49 - Child <8584> ended on error (255)
lxc-start test3 20190706132233.999 DEBUG    network - network.c:lxc_delete_network:3180 - Deleted network devices
lxc-start test3 20190706132234.152 INFO     conf - conf.c:run_script_argv:356 - Executing script "/usr/share/lxcfs/lxc.reboot.hook" for container "test3", config section "lxc"

O dziwo kontenery w wersji ze Squeeze startowały. Doraźnie wróciłem w kontenerach do Squeeze (z backupu, nie downgrade) i na pewien czas zostawiłem sprawę., chociaż okazało się, że startują dość kulawo – nie podnosiła się sieć ani nie uruchamiały usługi, trzeba to było robić ręcznie po każdym restarcie kontenera. Niefajne, ale do czasu znalezienia rozwiązania docelowego można wytrzymać, tym bardziej, że restarty są rzadkością.

Ostatecznie właśnie problemy ze startem i porównanie działania LXC na innym, świeżym hypervisorze z Buster, gdzie wszystko działało bez problemu naprowadziły mnie na rozwiązanie. Przy diagnostyce przy pomocy systemctl status otrzymywałem komunikat:

System has not been booted with systemd as init system (PID 1). Can't operate

Rozwiązaniem okazało się przejście na systemd i odinstalowanie pakietów związanych ze starym systemem init (niestety nie zapisałem nazw). IIRC na hypervisorze i w kontenerach. Po tym zabiegu wszystko działa poprawnie i startuje automatycznie, zarówno ze Squeeze w kontenerach, jak i po aktualizacji do Bustera.

Nie zaktualizowałem jeszcze wszystkich maszyn[1], ale z godnych odnotowania zmian – kontener generujący Planetę Joggera został w końcu zaktualizowany do nowej wersji Debiana, tj. do Bustera, bezpośrenio z Jessie zresztą[2]. Z działaniem na Squeeze był problem, na wersji testowej czy unstable także wtedy nie działało. Na szczęście jest już poprawione, co oznacza, że planeta ma szansę istnieć kolejne parę lat.

Ogólnie póki co aktualizacja całkiem przyjemna i prosta, o ile się ma systemd.

UPDATE: Na ostatnim serwerze napotkałem kolejny problem – skrypty w Pythonie korzystające z virtualenv przestały działać. Rozwiązanie łatwe do znalezienia po wpisaniu komunikatu – trzeba usunąć i utworzyć virtualenv na nowo. Dotyczyło zarówno Pythona 2 jak i Pythona 3.

[1] Został jeden serwer i jakieś desktopy na których akurat nie mam unstable i RPi robiące za router, którego trochę boję się zdalnie aktualizować, bo to zdalny system i nie mam żadnej alternatywnej łączności.

[2] Aktualizacja z przeskokiem wersji nie jest zalecanym sposobem, ale skoro to tylko okrojony kontener, który mogę w każdej chwili przywrócić z backupu, to czemu by nie spróbować?

Majówka

Dziwna to majówka i dziwny urlop. Jedno i drugie poszatkowane i pracowite. Pierwszą i najważniejszą rzeczą do załatwienia była – jak zwykle spóźniona – zmiana opon na letnie. Spojrzałem na felgi od zimówek i stwierdziłem, że warto je odświeżyć, bo trochę ruda zaczyna wychodzić. A skoro zakładam letnie, to najpierw letnie. Poszedłem na łatwiznę – spray czarny matowy, wyklejenie boku opony taśmą malarską, przetarcie drucianą szczotką i papierem ściernym. Jest powiedzenie, że gdy masz młotek, wszystko wygląda jak gwóźdź. Zmieniłbym na gdy masz spray, wszystko wygląda jak wymagające malowania. Faktem jest, że sprayem maluje się bardzo fajnie – łatwo i szybko. Niestety, przygotowanie felg zajmuje dłuższą chwilę. I oczywiście na jedną stronę z kół letnich zabrakło mi spray, a jak pojechałem dokupić w niedzielę, to okazało się, że sklep już zamknięty, więc w sumie zeszło znacznie dłużej, niż planowałem, więc odświeżone zostały tylko letnie. Zimówki i zapas muszą dłuższą chwilę poczekać.

Potem musiałem wrócić – tym razem pociągiem – do Poznania. Jedna sprawa do załatwienia, ale głównym powodem było złożenie PITa. Również tradycyjnie w ostatni dzień. Powody składania na papierze są różne – coś mi świta, że pod Linuksem nie szło to łatwo, trzeba mieć jakieś dodatkowe dane z poprzednich lat, a jakieś dziwne dodatki ostatnio jeszcze musiałem rozliczać. Głównie jednak chodzi o to, że papierowe mam przećwiczone, a nie chce mi się kombinować w ostatni dzień z nowym sposobem.

Oczywiście mogłem wysłać PIT pocztą, ale była jeszcze sprawa na miejscu, a stwierdziłem, że w pociągu sobie poczytam. Faktyczni, nadrobiłem lekturę i mam nadzieję, że wciągnę się z powrotem do czytania książek bo – wstyd się przyznać – to pierwsza przeczytana „moja” książka w tym roku. Nieco zasługa tego, że łapię się za cegły, niektóre nie podpasowują, a nie lubię brać się za kolejną książkę mając nieprzeczytaną inną.

Załatwiwszy temat opon, stwierdziłem, że zrobię lepszą składankę z muzą do auta. Do tej pory używałem uszkodzonej karty pochodzącej z Raspberry Pi (całkiem dobrze sobie radziła, ale w sumie nic dziwnego, to tylko odczyt, a uszkodzony jest IIRC konkretny fragment). Niestety, okazało się, że nowe utwory nie wejdą. Nie wiem czy to zaleta mtp[1], czy łapały się w uszkodzony obszar. Może kiedyś pobawię się w diagnostykę (ciekawe czy radio poradzi sobie z dwiema partycjami?), teraz po prostu pojechałem do sklepu i kupiłem nową. Oraz żarówkę do świateł pozycyjnych, w końcu. TBH wymieniłbym już dawno oryginalne W5W na stosowne LEDy, ale podobnoż się czepiają na przeglądach. Nie wiem czemu, w końcu i tak to praktycznie nie świeci, więc wolałbym, żeby przynajmniej prądu nie brało, przy zbliżonej jasności.

Tak naprawdę kupiłem dwie karty. Druga wylądowała w Raspberry Pi robiącym za router GSM. Tu słowo o stabilności Linuksa i rozwiązań chałupniczych (rpi + modem USB + hub USB), bo miałem niedawno okazję na ten temat rozmawiać. Albo raczej jeden uptime:

08:32:00 up 287 days, 18:42, 1 user, load average: 0.06, 0.08, 0.08

Głównym zasłużonym jest tu… prąd, bo router działa bez UPSa…

Kartę wymieniłem, bo chciałem zrobić upgrade Raspbiana – lada moment Debian Jessie przestanie być wspierany, a używany Raspbian właśnie na nim bazował. Poszedłem na łatwiznę i po prostu wrzuciłem najnowszy image,  bazujący na Stretch, dograłem brakujące pakiety i wrzuciłem kluczowe pliki z konfiguracją. Jestem nieco zaniepokojony, że taka rzeźba na szybko zaczyna mi wychodzić. Chyba muszę to na Githuba wrzucić. I może jakieś ansible do kompletu? W sumie rozjechała się tylko jedna rzecz – wyciąganie IP z interfejsu w jednym skrypcie. I tylko dlatego, że ifconfig zmienił format, więc automatyzacja i tak nic by tu nie pomogła…

Poza tym, sporo działki. Trochę pomogłem rodzicom na działce, trochę odpocząłem. Generalnie raczej pracowicie, choć i tak wielu rzeczy nie udało się zrobić, jak np. porządków z przekierowaniem ruchu ze starego bloga. Ale to może jeszcze w weekend ogarnę.

[1] Korzystałem z telefonu, bo okazało się, że nie bardzo mam czytnik kart micro SD – muszę kupić jakiś tani badziew i niech leży na takie okazje, bo wyciąganie modemu USB to nie jest to, co tygrysy lubią najbardziej.