<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>/var/log/bpiotrowski</title> <atom:link href="http://blog.bpiotrowski.pl/feed" rel="self" type="application/rss+xml" /><link>http://blog.bpiotrowski.pl</link> <description></description> <lastBuildDate>Wed, 22 Feb 2012 14:34:02 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>King Arthur&#8217;s Gold</title><link>http://blog.bpiotrowski.pl/1544/king-arthurs-gold</link> <comments>http://blog.bpiotrowski.pl/1544/king-arthurs-gold#comments</comments> <pubDate>Thu, 16 Feb 2012 19:54:00 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Gry]]></category> <category><![CDATA[Miniblog]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1544</guid> <description><![CDATA[Początkowo, w tym wpisie miała znaleźć się recenzja gry King Arthur&#8217;s Gold. Potem natknąłem się na recenzję autorstwa Vana i uznałem, że nie mógłbym napisać jej lepiej. Zapraszam do lektury i do samej gry. ;)]]></description> <content:encoded><![CDATA[<p>Początkowo, w tym wpisie miała znaleźć się recenzja gry <a
href="http://kag2d.com/">King Arthur&#8217;s Gold</a>. Potem natknąłem się na <a
href="http://romancingpenguin.net/gry-2/pingwin-na-zamku-czyli-king-arthurs-gold/">recenzję autorstwa Vana</a> i uznałem, że nie mógłbym napisać jej lepiej. Zapraszam do lektury i do samej gry. ;)</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1544/king-arthurs-gold/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Fundacja Aegis – polska fundacja parasolowa</title><link>http://blog.bpiotrowski.pl/1499/fundacja-aegis-polska-fundacja-parasolowa-dla-otwartych-projektow</link> <comments>http://blog.bpiotrowski.pl/1499/fundacja-aegis-polska-fundacja-parasolowa-dla-otwartych-projektow#comments</comments> <pubDate>Sat, 28 Jan 2012 19:57:49 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Miniblog]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1499</guid> <description><![CDATA[Z przyjemnością informujemy, iż dnia 09.01.2012 roku, z inicjatywy dwóch członków Stowarzyszenia Szczecińska Grupa Użytkowników Uniksa i Linuksa &#8221; Rafała Malujdy i Michała Smereczyńskiego – powołana została do życia Fundacja Aegis. Stowarzyszenie Szczecińska Grupa Użytkowników Uniksa i Linuksa, zgodnie z założeniem swoich działań statutowych, partycypowała w kosztach powołania Fundacji Aegis, pokrywając 1/3 kosztów tego procesu. [...]]]></description> <content:encoded><![CDATA[<blockquote><p>Z przyjemnością informujemy, iż dnia 09.01.2012 roku, z inicjatywy dwóch członków Stowarzyszenia Szczecińska Grupa Użytkowników Uniksa i Linuksa &#8221; Rafała Malujdy i Michała Smereczyńskiego – powołana została do życia Fundacja Aegis.</p><p>Stowarzyszenie Szczecińska Grupa Użytkowników Uniksa i Linuksa, zgodnie z założeniem swoich działań statutowych, partycypowała w kosztach powołania Fundacji Aegis, pokrywając 1/3 kosztów tego procesu. Tym samym, Stowarzyszenie Szczecińska Grupa Użytkowników Uniksa i Linuksa, głosem jego zarządu, udziela poparcia inicjatywie powstania Fundacji Aegis i planom jej działalności.</p><p>Aegis (Egida) to mityczna tarcza Zeusa, wykuta przez Hefajstosa. Według mitologii greckiej, miała ona chronić młodego boga. Zgodnie z frazeologią języka polskiego egida, a właściwie związek frazeologiczny „pod egidą”, oznacza roztaczanie opieki, przewodnictwo, patronat, czy protektorat. Aegis to też element nazwy kodowej systemu ochrony przeciwlotniczej i przeciwrakietowej obszaru działań floty lub wspieranego przez Marynarkę Wojenną USA lądowego teatru działań.</p><p>Fundacja Aegis, wzorem Apache Foundation, wpisuje się w ten kontekst i przyjmuje kształt fundacji parasolowej.</p><p>Pod parasolem fundacji przygotowane jest miejsce dla projektów związanych nie tylko z wolnym i otwartym oprogramowaniem, ale także dla projektów z dziedziny otwartych standardów, otwartych danych i interoperacyjności.</p><p>Fundacja Aegis zajmować się będzie wsparciem technologicznym, prawnym, społecznościowym i biznesowym dla projektów, które znajdą się pod jej<br
/> egidą. Fundacja zajmować się będzie także działalnością wydawniczą i stymulacją społeczności zgromadzonej wokół wolnego i otwartego oprogramowania, a także będzie pełnić rolę węzła komunikacyjnego pomiędzy deweloperami i innymi osobami zaangażowanymi w projekty związane z otwartym oprogramowaniem, otwartymi standardami, otwartymi danymi i interoperacyjnością, a światem biznesu i rynkiem zatrudnienia.</p><p>Dla członków Stowarzyszenia Szczecińska Grupa Użytkowników Uniksa i Linuksa, którzy znają jej statut, związek Stowarzyszenia Szczecińska Grupa Użytkowników Uniksa i Linuksa i Fundacji Aegis powinien być oczywisty. Na wielu płaszczyznach cele statutowe Stowarzyszenia Szczecińska Grupa Użytkowników Uniksa i Linuksa oraz Fundacji Aegis pokrywają się, zaś w wielu innych miejscach uzupełniają się nawzajem.</p><p>Fundacja Aegis będzie starała się zapraszać istniejące już projekty związane z wolnym i otwartym oprogramowaniem, otwartymi standardami, otwartymi danymi i interoperacyjnością pod swoją opiekę, ale także zachęcać będzie do tworzenia nowych projektów, formalizowania społecznych inicjatyw oraz do pielęgnacji inicjatyw, które mają na celu ochronę dóbr społeczności.</p><p>Ochrona dóbr społeczności według Fundacji Aegis, to stworzenie w Polsce „zbrojnego ramienia” ruchu wolnego i otwartego oprogramowania, ruchu otwartych standardów, inicjatywy otwartości danych i przyrzeczenia interoparcyjności. Fundacja ma zamiar stać na straży licencji chroniących otwartości i walczyć z wszelkimi przejawami naruszania tych licencji.</p><p>Projekty znajdujące się pod parasolem Fundacji Aegis będą mogły liczyć na doradztwo w kwestiach związanych inżynierią programowania, projektowaniem aplikacji i usług, biznesem, zarządzaniem projektami i rozwojem osobistym.</p><p>Fundacja Aegis starać się będzie działać w sposób merytokratyczny.<br
/> Decyzyjność w sprawach związanych z projektami jest trójstronna i dzieli się między fundatorów i stowarzyszenie Szczecińska Grupa Użytkowników<br
/> Uniksa i Linuksa, które reprezentowane jest przez jego władze. Oznacza to, iż Stowarzyszenie Szczecińska Grupa Użytkowników Uniksa i Linuksa ma jeden z trzech głosów decyzyjnych w sprawach związanych z projektami.</p><p>Poza głosami decydującymi, które konieczne są ze względów formalnych, w fundacji powołane zostało ciało nazwane mianem Zgromadzenia Fundatorów.<br
/> W zgromadzeniu tym zasiadają fundatorzy oraz osoby, które jako specjaliści w dziedzinach związanych z działalnością fundacji, zostają zaproszone do niego przez zarząd fundacji.</p><p>Wszystkie osoby, które są zainteresowane wsparciem Fundacji Aegis w jakikolwiek sposób, zapraszamy i zachęcamy do kontaktu. Fundacja to przede wszystkim ludzie i inicjatywy, ale zapraszamy do współpracy także firmy i organizacje, które w Fundacji Aegis widzą partnera do współpracy na polach swojej działalności.</p></blockquote><p><strong>TLDR:</strong> powstała polska fundacja dla otwartych projektów, służąca radą w aspektach technologicznych, prawnych i biznesowych. Jeżeli chcesz zgłosić swój projekt, odwiedź <a
href="http://aegis.org.pl/">stronę Fundacji</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1499/fundacja-aegis-polska-fundacja-parasolowa-dla-otwartych-projektow/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Podpisywanie pakietów w Arch Linuksie, cz. 4</title><link>http://blog.bpiotrowski.pl/1416/podpisywanie-pakietow-w-arch-linuksie-4</link> <comments>http://blog.bpiotrowski.pl/1416/podpisywanie-pakietow-w-arch-linuksie-4#comments</comments> <pubDate>Thu, 19 Jan 2012 21:11:21 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Arch Linux]]></category> <category><![CDATA[pacman]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1416</guid> <description><![CDATA[Ten wpis jest swobodnym tłumaczeniem Pacman Package Signing – 4: Arch Linux autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie. W poprzednich wpisach opisałem bardziej techniczne szczegóły implementacji podpisywania pakietów i baz danych repozytorium w pacmanie. Można przeczytać je tutaj: Podpisywanie pakietów w Arch Linuksie – 1: makepkg i repo-add Podpisywanie [...]]]></description> <content:encoded><![CDATA[<p><i>Ten wpis jest swobodnym tłumaczeniem <a
href="http://allanmcrae.com/2011/12/pacman-package-signing-4-arch-linux/">Pacman Package Signing – 4: Arch Linux</a> autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie.</i></p><p
style="text-align: right;"><span
id="more-1416"></span></p><p>W poprzednich wpisach opisałem bardziej techniczne szczegóły implementacji podpisywania pakietów i baz danych repozytorium w <code>pacmanie</code>. Można przeczytać je tutaj:</p><ul><li><a
href="http://blog.bpiotrowski.pl/1044/podpisywanie-pakietow-w-arch-linuksie-1-makepkg-i-repo-add">Podpisywanie pakietów w Arch Linuksie – 1: makepkg i repo-add</a></li><li><a
href="http://blog.bpiotrowski.pl/1046/podpisywanie-pakietow-w-arch-linuksie-2-pacman-key">Podpisywanie pakietów w Arch Linuksie – 2: pacman-key</a></li><li><a
href="http://blog.bpiotrowski.pl/1048/podpisywanie-pakietow-w-arch-linuksie-3-pacman">Podpisywanie pakietów w Arch Linuksie – 3: pacman</a></li></ul><p>Od tamtego czasu, pacman-4.0 został wydany i dodany do repozytorium <code>[testing]</code>. To znaczy, że nasza implementacja zaczyna mieć większą ilość użytkowników. Przez ten czas, nie znaleziono poważnych błędów, chociaż są pewne miejsca, które mogłyby być poprawione (n.p. instalacja niepodpisanych pakietów za pomocą <code>-U</code> &#8221; <a
href="https://bugs.archlinux.org/task/26520">FS#26520</a> i <a
href="https://bugs.archlinux.org/task/26729">FS#26729</a>). Nowy <code>pacman</code> poprawnie wykrył &#8222;zły pakiet&#8221; w moim repozytorium… (cóż, nie dosłownie zły, ze złym podpisem. Wniosek: nie tworzyć podpisów dla wielu plików jednocześnie, <code>gnupg</code> to śmieć…).</p><p>Repozytoria w Arch Linuksie powoli przygotowują się do sprawdzania podpisów w pacmanie-4.0. Możliwość wysyłania podpisów z pakietami została dodana w kwietniu, a stało się to obowiązkowe z początkiem listopada. Na dzisiaj, wszystkie pakiety w [core] zostały podpisane, około 71% pakietów w [extra] oraz 45% w [community].</p><p>Więc wszystkie elementy ze sobą współdziałają poprawnie. Ale jak to działa od strony praktycznej? Zacznę od ustawiania bazy kluczy PGP pacmana i <code>pacman.conf</code>.</p><p>Po instalacji nowego pacmana, powinieneś stworzyć bazę kluczy przy użyciu <code>pacman-key --init</code>. To polecenie tworzy niezbędne pliki (<code>pubring.gpg</code>, <code>secring.gpg</code>) z odpowiednimi uprawnieniami dostępu, aktualizuje bazę z zaufanymi kluczami (oczywiście pustą) i tworzy podstawowy plik konfiguracyjny. Generuje także główny klucz bazy pacmana. Możesz zmienić domyślny serwer kluczy w <code>/etc/pacman.d/gnupg/gpg.conf</code> &#8221; część użytkowników miała problemy z podłączeniem się do domyślnego.</p><p>Ustawienia w <code>pacman.conf</code> są bardziej kwestią osobistych preferencji, ale uważam swoje za całkiem rozsądne. Ustawiłem globalnie sprawdzanie podpisów (<code>Optional TrustedOnly</code>). Ustawienie to nie wymaga obecności podpisu, jeżeli jednak takowy jest, to musi pochodzić z zaufanego źródła. W manie dot. <code>pacman.conf</code> można znaleźć więcej szczegółów. Dla repozytoriów z podpisanymi wszystkimi pakietami ustawiłem <code>PackageRequired</code>, które wymaga podpisanej paczki, ale nie podpisanej bazy. (Dla <a
href="http://allanmcrae.com/2011/06/the-allanbrokeit-repo-that-might-really-break-your-system/">swojego repozytorium</a> używam <code>Required</code>; zarówno pakiety jak i baza są podpisane.)</p><p>Zobaczmy jak wygląda output podczas instalacji podpisanego pakietu:</p><pre class="brush: plain; light: true; title: ; notranslate"># pacman -S gcc-libs
warning: gcc-libs-4.6.2-3 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...
 
Targets (1): gcc-libs-4.6.2-3
 
Total Installed Size: 2.96 MiB
Net Upgrade Size: 0.00 MiB
 
Proceed with installation? [Y/n]
(1/1) checking package integrity [######################] 100%
error: gcc-libs: key &quot;F99FFE0FEAE999BD&quot; is unknown
:: Import PGP key EAE999BD, &quot;Allan McRae &quot;, created 2011-06-03? [Y/n] y
(1/1) checking package integrity [######################] 100%
error: gcc-libs: signature from &quot;Allan McRae &quot; is unknown trust
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.</pre><p>Jak widać, pacman przerwał instalację pakietu, który został podpisany nieznanym kluczem i zapytał użytkownika, czy chce zaimportować go do bazy. Wyświetlony fingerprint zgadza się z tym opublikowanym w kilku miejscach, więc z czystym sumieniem użytkownik może dodać go do swojej bazy. Wtedy <code>pacman</code> przerywa instalację przez to, że klucz jest niezaufany. Cóż, ten Allan wygląda na godnego zaufania, więc można zmienić poziom zaufania jego klucza za pomocą <code>pacman-key --lsign EAE999BD</code> i pakiety podpisane przez Allana będą instalowane bez problemu.</p><p>Sprawdzanie wiarygodności każdego developera i zaufanego użytkownika może być dosyć uciążliwe (35 <a
href="https://www.archlinux.org/developers/">devów</a> oraz 30 <a
href="https://www.archlinux.org/trustedusers/">TU</a>). Aby to ułatwić (chociaż trochę), 5 głównych kluczy jest używanych w repozytoriach. Cały pomysł polega na tym, że klucze developerów i zaufanych użytkowników muszą być podpisane wcześniej wspomnianymi głównymi kluczami, więc w bazie kluczy potrzebujesz tylko ich, aby zaufać pozostałym. Odciski kluczy zostaną udostępnione w wielu miejscach, aby można im zaufać (na dole wpisu można znaleźć listę kluczy niezależną od tej ze stron Archa).</p><p>Aby skonfigurować bazę z głównymi kluczami, możesz skorzystać z poniższego skryptu:</p><pre class="brush: plain; light: true; title: ; notranslate">for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done</pre><p>W efekcie odpowiednie klucze powinny znaleźć się w bazie i zostać podpisane lokalnym kluczem pacmana. To jednak nie wystarczy &#8221; przecież pakiety nie są podpisywane tymi kluczami. Należy jeszcze zmienić poziom zaufania &#8221; skrypt ustawia go na marginalny. Warto zauważyć, że robi to za pomocą <code>gpg</code>, nie <code>pacman-key</code>, który nie obsługuje parametru <code>--command-fd</code>. Można użyć <code>pacman-key --edit-key</code>, do ustawienia zaufania ręcznie. Domyślnie, nasza sieć zaufania uznaje klucz za zaufany, gdy jest podpisany co najmniej 3 głównymi kluczami. (Jest ich 5, więc nawet jeśli unieważnimy 2 z nich, wtedy pakiety dalej będą uznane za bezpieczne.) Niski poziom zaufania głównych kluczy jest zarazem zabezpieczeniem &#8221; kilka kluczy musi być skompromitowanych, aby wprowadzić zaufany pakiet do repozytorium z zewnątrz.</p><p>Teraz, gdy klucze są już w bazie pacmana, za każdym razem gdy <code>pacman</code> będzie pobierał pakiet z nieznanym podpisem, będzie automatycznie oznaczany jako zaufany. Przynajmniej taki jest pomysł. W dalszym ciągu nie wszyscy developerzy/TU mają klucze podpisane głównymi, ale już niewiele brakuje. W przyszłości może pojawi się pakiet <code>pacman-keyring</code>, który usprawni proces konfiguracji, albo chociaż uchroni użytkownika przed pobieraniem każdego klucza samodzielnie.</p><p>Jedyne, co pozostaje do zrobienia, to kwestia podpisywania bazy danych repozytorium, ale to historia na inną okazję.</p><p>–<br
/> Allan McRae – <code>AB19 265E 5D7D 2068 7D30 3246 BA1D FB64 FFF9 79E7</code><br
/> Dan McGee – <code>27FF C476 9E19 F096 D41D 9265 A04F 9397 CDFD 6BB0</code><br
/> Ionuț Mircea Bîru – <code>44D4 A033 AC14 0143 9273 97D4 7EFD 567D 4C7E A887</code><br
/> Pierre Schmitz – <code>0E8B 6440 79F5 99DF C1DD C397 3348 882F 6AC6 A4C2</code><br
/> Thomas Bächler – <code>6841 48BB 25B4 9E98 6A49 44C5 5184 252D 824B 18E8</code></p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1416/podpisywanie-pakietow-w-arch-linuksie-4/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Podpisywanie pakietów w Arch Linuksie, cz. 3: pacman</title><link>http://blog.bpiotrowski.pl/1048/podpisywanie-pakietow-w-arch-linuksie-3-pacman</link> <comments>http://blog.bpiotrowski.pl/1048/podpisywanie-pakietow-w-arch-linuksie-3-pacman#comments</comments> <pubDate>Wed, 18 Jan 2012 12:50:27 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Arch Linux]]></category> <category><![CDATA[pacman]]></category> <guid
isPermaLink="false">http://barthalion.rocik.net/?p=1048</guid> <description><![CDATA[Ten wpis jest swobodnym tłumaczeniem Pacman Package Signing – 3: Pacman autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie. Nadszedł czas na ostatni element sagi podpiswania pakietów… Poprzednio opisałem podpisywanie pakietów oraz baz danych i zarządzanie bazą kluczy, niezbędne elementy weryfikowania podpisów w pacmanie. Większość użytkowników nie zauważy procesu sprawdzania podpisów, [...]]]></description> <content:encoded><![CDATA[<p><i>Ten wpis jest swobodnym tłumaczeniem <a
href="http://allanmcrae.com/2011/08/pacman-package-signing-3-pacman/">Pacman Package Signing – 3: Pacman</a> autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie.</i></p><p
style="text-align: right;"><span
id="more-1048"></span></p><p>Nadszedł czas na ostatni element sagi podpiswania pakietów… Poprzednio opisałem <a
href="http://blog.bpiotrowski.pl/1044/podpisywanie-pakietow-w-arch-linuksie-1-makepkg-i-repo-add">podpisywanie pakietów oraz baz danych</a> i <a
href="http://blog.bpiotrowski.pl/1046/podpisywanie-pakietow-w-arch-linuksie-2-pacman-key">zarządzanie bazą kluczy</a>, niezbędne elementy weryfikowania podpisów w pacmanie.</p><p>Większość użytkowników nie zauważy procesu sprawdzania podpisów, dopóki nie pójdzie coś źle (nie licząc konfiguracji). Widoczny będzie stary komunikat <i>checking package integrity</i> podczas którego będą sprawdzane sumy kontrolne oraz weryfikowany podpis, jeżeli będzie taki dostępny. Implementacja tego wymagała znacznych zmian w <code>libalpm</code>, w tym dodaniu weryfikacji podpisów przy użyciu biblioteki <a
href="http://www.gnupg.org/gpgme.html">gpgme</a>, opcji konfiguracyjnych do kontrolowania weryfikacji repozytoriów i pakietów oraz sprawdzenia jak i kiedy baza repozytorium jest ładowana (dzięki czemu można wcześnie powiadomić użytkownika o wadliwym podpisie repo), a to dopiero początek listy. Większość z niej zostało zrobione przez <a
href="http://www.toofishes.net/">Dana McGee</a>, głównego programisty <code>pacmana</code>.</p><pre class="brush: plain; light: true; title: ; notranslate">$ git shortlog -n -s --no-merges maint..
   296  Dan McGee
   128  Dave Reisner
   124  Allan McRae
   ...</pre><p>(w tym 18 innych autorów z 11 commitami bądź mniej). Dan bez wątpienia jest autorem prawie połowy wszystkich commitów, poczas gdy o drugie miejsce trwała zaciekła rywalizacja.</p><p>Jakie są efekty naszej pracy? Moje zdanie jest lekko stronnicze, ale sądzę, że udało nam się stworzyć jedną z najbardziej kompletnych i elastycznych implementacji. Inne menadżery pakietów zwyczajnie wywołują <code>gpgv</code>, który ufa każdemu podpisowi z bazy kluczy. Dzięki bardziej skomplikowanemu rozwiązaniu z użyciem <code>gpgme</code>, <code>pacman</code> ma kompletną realizację sieci zaufania, pozwalającą na bardzo dokładnie zarządzanie kluczami. Nie tylko podpisujemy pakiety &#8221; bazy danych repozytoriów również. Co najważniejsze, można dodać czas wygaśnięcia do tych kluczy, dzięki czemu niegroźne są złośliwe mirrory ze starymi wersjami pakietów albo wcale wcale nie dostarczające aktualizacji. Dodatkowo, zabezpieczyliśmy użytkownika przed tzw. <i>endless data attack</i>, w którym atakujący wysyła niekończony strumień danych zamiast żądanego pliku. Wszystkie te rozwiązania pokrywają najczęściej zgłaszane i spotykane ataki na menadżery pakietów. (Wstrzymałem się od powiedzenie &#8222;wszystkie&#8221; &#8221; ktoś natymiast udowodnił by, że jestem w błędzie.)</p><p>Wracając do sprawdzania podpisów w <code>pacmanie</code>. Głównym ustawieniem jest dyrektywa <code>SigLevel</code> w <code>pacman.conf</code>, którą można ustawić globalnie i odrębnie dla każdego repozytorium. Przyjmuje trzy wartości:</p><ul><li><code>Required</code>, która wymusza sprawdzenie podpisu przed instalacją</li><li><code>Optional</code> (domyślnie), która sprawdza podpis, jeżeli jest dostępny i akceptuje niepodpisane pakiety/bazy</li><li><code>Never</code>, która wyłącza sprawdzanie podpisów</li></ul><p>Bardziej szczegółowe ustawienia można uzyskać dodając prefiksy do powyższych wartości. Na przykład, posiadam repozytorium z podpisaną bazą, lecz nie wszystkie pakiety są podpisane. Używam więc <code>SigLevel = Optional</code> jako ustawienie domyślne oraz <code>SigLevel = DatabaseRequired</code>, aby wymusić weryfikowanie podpisu bazy. Alternatywnie mogę ustawić globalnie <code>SigLevel = DatabaseRequired PackageOptional</code> aby uzyskać dokładnie taki sam efekt. Można również określić wymagany poziom zaufania za pomocą opcji <code>TrustedOnly</code> (domyślnie) oraz <code>TrustAll</code>. Ten pierwszy akceptuje tylko klucze, które mają pełne zaufanie w bazie kluczy. Drugi wymaga tylko obecności klucza w bazie (tak jak <code>gpgv</code>).</p><p>Jak pisałem wcześniej, po konfiguracji z perspektywy użytkownika jest widoczna bardzo mała zmiana. Zauważalne jest to, że <code>pacman</code> pobiera podpis bazy danych, gdy <code>SigLevel</code> ma wartość <code>Required</code> i <code>Optional</code>.</p><pre class="brush: plain; light: true; title: ; notranslate"># pacman -Syu
:: Synchronizing package databases...
 allanbrokeit           1464.0B  540.5K/s 00:00:00 [######################] 100%
 allanbrokeit.sig        287.0B    7.0M/s 00:00:00 [######################] 100%
...</pre><p>Poza tym, sprawdzanie podpisu wykonywane jest w trakcie sprawdzania integralności paczki, więc prawdopodobnie zostanie to niezauważone, dopóki nie pójdzie coś źle. Jest to jednocześnie zaleta (w końcu lubimy <code>pacmana</code> ze względu na jego prostotę) i wada (duża część wykonywanych zadań jest niewidoczna dla użytkownika). Jeśli wszystko związane z podpisywaniem pakietów i baz danych działa, pamiętaj, by podziękować najbliższemu deweloperowi pacmana (a jeśli nie działa, to nie była nasza wina…).</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1048/podpisywanie-pakietow-w-arch-linuksie-3-pacman/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Podpisywanie pakietów w Arch Linuksie, cz. 2: pacman-key</title><link>http://blog.bpiotrowski.pl/1046/podpisywanie-pakietow-w-arch-linuksie-2-pacman-key</link> <comments>http://blog.bpiotrowski.pl/1046/podpisywanie-pakietow-w-arch-linuksie-2-pacman-key#comments</comments> <pubDate>Tue, 17 Jan 2012 09:25:11 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Arch Linux]]></category> <category><![CDATA[pacman]]></category> <guid
isPermaLink="false">http://barthalion.rocik.net/?p=1046</guid> <description><![CDATA[Ten wpis jest swobodnym tłumaczeniem Pacman Package Signing – 2: Pacman-key autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie. W drugiej części serii wpisów dotyczących implementacji podpisywania pakietów w w pacmanie przybliżę zarządzanie kluczami oraz nowe narzędzie pacman-key. Sposób, w jaki baza kluczy pacmana, jest zasadniczym aspektem bezpieczeństwa systemu. Baza kluczy [...]]]></description> <content:encoded><![CDATA[<p><i>Ten wpis jest swobodnym tłumaczeniem <a
href="http://allanmcrae.com/2011/08/pacman-package-signing-2-pacman-key/">Pacman Package Signing – 2: Pacman-key</a> autorstwa Allana McRae, zajmującego się rozwijaniem pacmana i toolchainem w Arch Linuksie.</i></p><p
style="text-align: right;"><span
id="more-1046"></span></p><p>W drugiej części serii wpisów dotyczących implementacji podpisywania pakietów w w pacmanie przybliżę zarządzanie kluczami oraz nowe narzędzie <code>pacman-key</code>.</p><p>Sposób, w jaki baza kluczy pacmana, jest zasadniczym aspektem bezpieczeństwa systemu. Baza kluczy (w połączeniu z ustawieniami pacmana) będzie zarządzać którym pakietom i podpisów baz baz danych zaufa użytkownik i w ten sposób, które pakiety wpuści do swojego systemu. Wciąż nie jestem do końca przekonany w jaki sposób ustawić bazę kluczy w zakresie ważności kluczy i ich poziomie zaufania &#8221; jedyne repozytorium z którego korzystam i w pełni korzysta z podpisywania pakietów jest moje własne. Dodawanie mojego klucza z absolutnym zaufaniem może nie być najlepszą rzeczą do zrobienia dla innych użytkowników, jednak może być to akceptowalne w bazie kluczy pacmana, nie całego systemu. Mimo wszystko jest to społeczne zagadnienie używania PGP, więc zostawię dyskusję na ten temat na inną okazję.</p><p>Zakładając, że baza kluczy jest już ustawiona, narzędzie do zarządzania nią może być pomocne. Co prawda można to zrobić korzystając z <code>gpg</code> i parametru <code>--homedir</code>, jest kilka problemów związanych z pacmanem, dzięki którym powstało odrębne narzędzie &#8221; pacman-key. Początkowo pacman-key był portem debianowego apt-key autorstwa Denisa A. Altoé Falquet, ale powoli stawał się nakładką na gpg z dodatkowymi funkcjami. Swoje zasługi mieli także Ivan Kanakarakis i Pang Yan Han, którzy wnieśli wiele poprawek do skryptu oraz Guillaume Alaux, autora początkowej strony man.</p><p>Baza kluczy pacmana (domyślnie) będzie znajdywać się w <code>/etc/pacman.d/gnupg</code> (aczkolwiek może to zostać zmienione za pomocą dyrektywy <code>GPGDir</code> w <code>pacman.conf</code>). Baza powinna być stworzona z użyciem <code>pacman-key --init</code>, aby mieć pewność, że pliki mają odpowiednie uprawnienia i sprawdzanie podpisów będzie działać. Na przykład, aby zweryfikować podpis pakietu (<code>pacman -Qip <pakiet></pakiet></code>), użytkownik musi mieć uprawnienia do odczytania plików bazy kluczy, przy czym gnupg nie może tworzyć pliku blokady (obecnie jest to ustawione globalnie, biblioteka gpgme użyta w pacmanie nie ma funkcji kontrolującej tworzenie plików blokady…).</p><p>Klucze mogą zostać dodane do bazy na kilka różnych sposób. Mogą zostać importowane z lokalnego pliku bądź plików przy użyciu <code>pacman-key -a/-add <plik
(i)></plik></code> albo z publicznego serwera za pomocą <code>pacman-key -r/--receive <serwer> <id></id></serwer></code>. Można również zaimportować cały zestaw kluczy z innej bazy kluczy GnuPG. Klucze można usunąć za pomocą opcji <code>-d/--delete</code>. Istnieje również możliwość dla dystrybucji albo innego dostawcy repo udostępnienia bazy zawierającej klucze wszystkich packagerów, ale ten mechanizm ciągle podlega pracom.</p><p>Gdy w bazie znajdują się klucze, można nimi zarządzać za pomocą <code>pacman-key</code> i częścią parametrów GnuPG (<code>--edit-key</code>, <code>--export</code>, <code>--list-keys</code>, <code>--list-sigs</code>). Opcja umożliwiająca modyfikowanie klucza jest istotna ze względu na możliwość ustawienia poziomu zaufania i podpisywania innych kluczy. W przypadku bardziej zaawansowanych operacji, konieczne jest bezpośrednie użycie <code>gpg</code>, ale jestem pewien, że jeżeli będzie to często używane polecenie, zostanie dodane do <code>pacman-key</code> na prośbę.</p><p>I to by było wszystko na temat <code>pacman-key</code>. Jest dosyć proste, jednak zostało najmniej przetestowane jako narzędzie, które nie jest używane codziennie. Jeżeli chciałbyś pomóc przy testach bez naruszania pacmana zainstalowanego w systemie, możesz zbudować i uruchomić go bezpośrednio z gita.</p><pre class="brush: plain; light: true; title: ; notranslate">$ git clone git://projects.archlinux.org/pacman.git
$ cd pacman
$ ./autogen.sh
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make -C scripts
$ ./scripts/pacman-key</pre><p>Sprawdź tworzenie nowej bazy, dodawanie i usuwanie kluczy, modyfikowanie ich, weryfikowanie pakietów i oczywiście, zgłoś wszystkie błędy, które napotkasz.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1046/podpisywanie-pakietow-w-arch-linuksie-2-pacman-key/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Niewystarczający stopień entropii w systemie</title><link>http://blog.bpiotrowski.pl/1346/niewystarczajacy-stopien-entropii-w-systemie</link> <comments>http://blog.bpiotrowski.pl/1346/niewystarczajacy-stopien-entropii-w-systemie#comments</comments> <pubDate>Sun, 25 Dec 2011 17:57:00 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Arch Linux]]></category> <category><![CDATA[pacman]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1346</guid> <description><![CDATA[Stosunkowo niedawno do końca zniszczyłem swojego prawie rocznego Archa. Korzystając z dobrodziejstw najnowszego instalatora, od razu zainstalowałem system z pakietami z repozytorium [testing]. Nim przystąpiłem do instalacji środowiska graficznego i innych potrzebnych aplikacji, postanowiłem za jednym zamachem przetestować jak sprawuje się nowy pacman, korzystając z niego od szkieletu systemu. Oczywiście jak zawsze miałem szczęście i [...]]]></description> <content:encoded><![CDATA[<p>Stosunkowo niedawno do końca zniszczyłem swojego prawie rocznego Archa. Korzystając z dobrodziejstw najnowszego instalatora, od razu zainstalowałem system z pakietami z repozytorium <em>[testing]</em>. Nim przystąpiłem do instalacji środowiska graficznego i innych potrzebnych aplikacji, postanowiłem za jednym zamachem przetestować jak sprawuje się <a
href="http://blog.bpiotrowski.pl/1182/pacman-4-0-x">nowy pacman</a>, korzystając z niego od szkieletu systemu. Oczywiście jak zawsze miałem szczęście i nie wszystko działało jak powinno.</p><p
style="text-align: right;"><span
id="more-1346"></span></p><p>Jeżeli jest ktoś niezorientowany w temacie podpisywania pakietów w pacmanie, konieczne jest wygenerowanie lokalnego klucza, do podpisywania (i uwierzytelnienia) kluczy zewnętrznych. Korzystając więc z polecenia znalezionego w dokumentacji/podpowiedzianego przez pacmana, uzyskałem taki efekt:</p><pre class="brush: plain; light: true; title: ; notranslate">[root@marlowe ~]# pacman-key --init
gpg: Generating pacman keychain master key...
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 300 more bytes)</pre><p>Gdybym miał zainstalowane środowisko graficzne, wystarczyłoby pomachać myszką. Ale nie miałem, bo przecież uparłem się na testowanie pacmana.<br
/> Bezsensowne walenie w klawiaturę nic nie dało. To samo z przekierowaniem <code>/dev/random</code> i <code>/dev/urandom</code> na terminal. W żaden sposób nie przybliżyło mnie też wymuszenie instalacji mplayer2 i odsłuchanie kilku piosenek Morphine. Wymusiłem jeszcze instalację Linksa i przystąpiłem do przeszukiwania Internetu.</p><p>Po chwili trafiłem na rng-tools, które okazało się remedium na ów problem. Po instalacji, zmieniłem <code>TIMEOUT</code> w pliku <code>/etc/conf.d/rngd</code> na 10. Potem wystarczyło odpalić <code>rngd -f -r /dev/urandom</code> i spróbować ponownie wygenerować klucz. Tadam!</p><p>Oczywiście, można było wymusić instalacje wszystkich pakietów, wyłączyć sprawdzanie podpisów albo tymczasowo zrobić downgrade pacmana, ale po co, skoro cała zabawa polega na rozwiązywaniu problemów. ;)</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1346/niewystarczajacy-stopien-entropii-w-systemie/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>AwesomeWM i przywracanie zminimalizowanych okien</title><link>http://blog.bpiotrowski.pl/1374/awesomewm-i-przywracanie-zminimalizowanych-okien</link> <comments>http://blog.bpiotrowski.pl/1374/awesomewm-i-przywracanie-zminimalizowanych-okien#comments</comments> <pubDate>Thu, 15 Dec 2011 14:52:28 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Techniczne]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1374</guid> <description><![CDATA[Od jakiegoś czasu jestem użytkownikiem Awesome, kafelkowego menedżera okien. W swoim minimalizmie przypomina bardziej framework, a cała konfiguracja napisana jest w Lua. Osoby zaznajomione z ideą tilingu wiedzą, że tego typu WM obsługuje się najwygodniej samą klawiaturą. Awesome nie jest jednak idealne. Chociaż domyślnie jest dostępny skrót klawiszowy służący do minimalizacji aktywnego okna, to zabrakło [...]]]></description> <content:encoded><![CDATA[<p>Od jakiegoś czasu jestem użytkownikiem <a
href="http://awesome.naquadah.org/">Awesome</a>, kafelkowego menedżera okien. W swoim minimalizmie przypomina bardziej framework, a cała konfiguracja napisana jest w Lua. Osoby zaznajomione z ideą tilingu wiedzą, że tego typu WM obsługuje się najwygodniej samą klawiaturą. Awesome nie jest jednak idealne. Chociaż domyślnie jest dostępny skrót klawiszowy służący do minimalizacji aktywnego okna, to zabrakło już skrótu do przywracania zminimalizowanych okien. Dosyć <s>dziwny</s> frustrujący problem, który oczywiście można rozwiązać.</p><p
style="text-align: right;"><span
id="more-1374"></span></p><p>Poniższy kod należy wstawić do tablicy <code>globalkeys</code> w pliku <code>rc.lua</code>. Umożliwia przywrócenie wszystkich zminimalizowanych okien za pomocą skrótu <code>Mod4+N</code>.</p><pre class="brush: plain; title: ; notranslate">    -- all minimized clients are restored
    awful.key({ modkey, &quot;Shift&quot;   }, &quot;n&quot;,
        function()
            local tag = awful.tag.selected()
                for i=1, #tag:clients() do
                    tag:clients()[i].minimized=false
                    tag:clients()[i]:redraw()
            end
        end)</pre><p>Sfrustrowało mnie to wystarczająco bardzo, bym zaczął rozglądać się za alternatywnym menedżerem okiem bądź środowiskiem graficznym, ale o tym innym razem.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1374/awesomewm-i-przywracanie-zminimalizowanych-okien/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Zmiany na blogu</title><link>http://blog.bpiotrowski.pl/1356/zmiany-na-blogu</link> <comments>http://blog.bpiotrowski.pl/1356/zmiany-na-blogu#comments</comments> <pubDate>Sat, 03 Dec 2011 11:17:52 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Bez kategorii]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1356</guid> <description><![CDATA[Ostatnio trochę pogrzebałem i pojawiło się trochę zmian. Stale odwiedzający powinni głównie zapoznać się z punktem 2 i 4, reszta to oczywiście nabijanie treści. ;) Nowa domena Od teraz blog, jak i większość rzeczy związanych ze mną, można znaleźć pod adresem bpiotrowski.pl. Stary adres nadal będzie działał, ale zostawiłem go głównie dla wyszukiwarek. Leniwi nie [...]]]></description> <content:encoded><![CDATA[<p>Ostatnio trochę pogrzebałem i pojawiło się trochę zmian. Stale odwiedzający powinni głównie zapoznać się z punktem 2 i 4, reszta to oczywiście nabijanie treści. ;)</p><p
style="text-align: right;"><span
id="more-1356"></span></p><ul><li>Nowa domena</li><p>Od teraz blog, jak i większość rzeczy związanych ze mną, można znaleźć pod adresem <i>bpiotrowski.pl</i>. Stary adres nadal będzie działał, ale zostawiłem go głównie dla wyszukiwarek. Leniwi nie muszą oczywiście uaktualniać kanału RSS, on również powinien działać bez problemów.</p><li>Miniblog</li><p>Wszystkie wpisy mniej techniczne, bądź mniej związane z tematyką bloga trafiają do bocznej kolumny; ergo do minibloga. Użyta wtyczka ma jednak pewne mankamenty, których (póki co) nie umiem naprawić: wpisy z minibloga nie trafią do głównego kanału RSS. Osoby zainteresowane relacjami, bądź zaproszeniami na konferencje są zmuszone czytać samodzielnie kategorię Miniblog, albo <a
href="http://blog.bpiotrowski.pl/category/miniblog/feed">dodać kolejny kanał do swojego czytnika</a>.</p><li>Menu</li><p>Na górze strony pojawiło się menu z kilkoma odnośnikami. Na daną chwilę jest to odnośnik na moją stronę, na stronę główną (a w rozwijanym menu do kanałów RSS), podstronę dot. mojej osoby, klucz GPG oraz Github. Niewykluczone, że pojawi się ich więcej albo któryś zniknie.</p><li>Żegnaj Blipie, witaj Identi.ca!</li><p>Osoby śledzące mojego Blipa już pewnie zauważyły, że od sierpnia mało się tam udzielam. Zebrałem tam sporą kolekcję linków, więc ciągle męczę się, aby wyeksportować Blipy za pomocą API, ale w międzyczasie przeniosłem się na Identi.ca, otwartoźródłową alternatywę dla Twittera. Na tym ostatnim też mam konto, ale trafia na nie dokładnie ta sama treść co na konto na Identi.ca.<br
/> Przy okazji zmiany, pozbyłem się także widgetu wyświetlającego ostatnie blipnięcia, a dodałem analogiczny dla nowego serwisu.</p><li>Reklamy</li><p>Co prawda dosyć dawno, bo już od 6 miesięcy temu, pojawiły się reklamy na blogu i prawdopodobnie nie znikną, dopóki będą przynosić dochody (nieduże, ale zawsze). Są nieinwazyjne, zupełnie niezwiązane z tematyką bloga i prawdopodobnie łatwo je wyciąć AdBlockiem.</p><li>Optymalizacja</li><p>Ostatni punkt, który sprawił mi najwięcej frajdy. W końcu skończyłem poprawiać czas ładowania strony. Od strony WordPressa wykorzystałem wtyczki <a
href="http://blog.bpiotrowski.pl/wp-admin/options-general.php?page=wp-minify">WP Minify</a>, <a
href="https://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache oraz </a><a
href="https://wordpress.org/extend/plugins/headjs-plus/">HeadJS Plus</a>. Za wyświetlanie strony odpowiada <a
href="http://nginx.org/">nginx</a> z włączoną kompresją.</ul><p>To chyba wszystko z najważniejszych rzeczy. Pewnie za kilka miesięcy znów pojawi się tego typu lista. ;)</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1356/zmiany-na-blogu/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>OpenRadar 2011</title><link>http://blog.bpiotrowski.pl/1342/openradar-2011</link> <comments>http://blog.bpiotrowski.pl/1342/openradar-2011#comments</comments> <pubDate>Mon, 28 Nov 2011 13:49:14 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Miniblog]]></category> <guid
isPermaLink="false">http://blog.bpiotrowski.pl/?p=1342</guid> <description><![CDATA[I znowu brzydko przekleję: 1 i 2 grudnia 2011 roku odbędzie się konferencja Open Radar 2011. Konferencja ma na celu połączenie przedstawicieli branży IT, naukowców i przedsiębiorców ze społecznością Open Source z Polski i Niemiec. Pierwszego dnia konferencji przewidziano wykłady (Hotel Silver), a drugiego warsztaty (Technopark Pomerania) oraz giełdę kooperacyjną projektu Fames Artium Magistra, organizowaną [...]]]></description> <content:encoded><![CDATA[<p>I znowu brzydko przekleję:</p><blockquote><p>1 i 2 grudnia 2011 roku odbędzie się konferencja Open Radar 2011. Konferencja ma na celu połączenie przedstawicieli branży IT, naukowców i przedsiębiorców ze społecznością Open Source z Polski i Niemiec. Pierwszego dnia konferencji przewidziano wykłady (Hotel Silver), a drugiego warsztaty (Technopark Pomerania) oraz giełdę kooperacyjną projektu Fames Artium Magistra, organizowaną przez Szczeciński Park Naukowo-Technologiczny (Hotel Silver). Pierwszego dnia konferencji spotykamy się także wieczorem w pubie Stara Komenda, aby zacieśniać więzi z zachodnim sąsiadem &#8221; wszystko oczywiście przez pryzmat otwartego oprogramowania.  Konferencja Open Radar 2011 jest organizowana po raz pierwszy, a jej organizatorami są Stowarzyszenie Klaster ICT Pomorze Zachodnie/Technopark Pomerania oraz Stowarzyszenie Szczecińska Grupa Użytkowników Uniksa i Linuksa.  Projekt jest dofinansowany przez Unię Europejską ze środków Europejskiego Funduszu Rozwoju Regionalnego oraz budżetu państwa (Fundusz Małych Projektów INTERREG IV A Euroregionu Pomerania).</p></blockquote><p>Oczywiście też się pojawię, w miarę możliwości będę zajmował się polskimi prelegentami spoza Szczecina i podawał ciepłe napoje. Tym razem nie będę prowadził żadnego wykładu. ;) Więcej informacji można znaleźć na <a
href="http://openradar.info/">stronie konferencji</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1342/openradar-2011/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Alpine Linux na Wyse 9150SE</title><link>http://blog.bpiotrowski.pl/1261/alpine-linux-na-wyse-9150se</link> <comments>http://blog.bpiotrowski.pl/1261/alpine-linux-na-wyse-9150se#comments</comments> <pubDate>Mon, 14 Nov 2011 22:30:58 +0000</pubDate> <dc:creator>Bartłomiej Piotrowski</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Techniczne]]></category> <guid
isPermaLink="false">http://barthalion.rocik.net/?p=1261</guid> <description><![CDATA[Ostatnie próby używania Alpine Linux nie zakończyły się powodzeniem. Niedawno jednak pojawiło się nowe wydanie, więc postanowiliśmy spróbować naprawić nasz związek. O projekcie Alpine Linux to mała dystrybucja przeznaczona do instalacji na routerach, firewallach, lub zwyczajnych serwerach. Czym się różni od innych serwerowych dystrybucji? Wszelkie oprogramowanie jest skompilowane z uClibc (które w teorii powinno być [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://barthalion.rocik.net/1111/co-mozna-zrobic-z-wyse-9150se">Ostatnie próby</a> używania Alpine Linux nie zakończyły się powodzeniem. Niedawno jednak pojawiło się <a
href="http://alpinelinux.org/node/6841">nowe wydanie</a>, więc postanowiliśmy spróbować naprawić nasz związek.</p><p
style="text-align: right;"><span
id="more-1261"></span></p><h3>O projekcie</h3><p>Alpine Linux to mała dystrybucja przeznaczona do instalacji na routerach, firewallach, lub zwyczajnych serwerach. Czym się różni od innych serwerowych dystrybucji? Wszelkie oprogramowanie jest skompilowane z <a
href="http://www.uclibc.org/">uClibc</a> (które w teorii powinno być używane w systemach wbudowanych), zamiast glibc. Korzysta także z <a
href="http://www.busybox.net/>Busyboksa, a w celu poprawy bezpieczeństwa systemu z <a
href="https://secure.wikimedia.org/wikipedia/en/wiki/PaX">PaX</a> i <a
href="https://secure.wikimedia.org/wikipedia/en/wiki/Stack-smashing_protection">SSP</a>. Zamiast własnych skryptów startowych, korzysta z OpenRC zapożyczonego z Gentoo. Menedżer pakietów <code>apk</code> dla odmiany jest własny, chociaż pomysł na skrypt do budowania pakietu jest ewidentnie wzorowany na Archu, co sugeruje nawet jego nazwa → <code>APKBUILD</code>.</p><h3>Instalacja i użytkowanie</h3><p>Jako że interesowała mnie instalacja na pendrive, użyłem na początku <a
href="http://unetbootin.sourceforge.net/">UNetbootin</a>, aby przerzucić Alpine na jednego pendrive&#8217;a. Po zalogowaniu się na konto <code>root</code> w pierwszym Alpine, podłączyłem drugiego pendrive i podążając za poleceniami skryptu <code>setup-bootable</code> zainstalowałem na tym właściwym (ergo drugim).<br
/> Dlaczego tak? Co prawda system zainstalowany przez UNetbootin jest w pełni używalny, ale znajduje się na jednej partycji FAT32. Skrypt instalacyjny tworzy natomiast partycje <i>/boot</i> oraz systemową, do tego swap. Pozwala także na szybką konfigurację systemu: układ klawiszy, hostname, hasło roota, bądź serwer SSH (swoją drogą polecam <a
href="http://matt.ucc.asn.au/dropbear/dropbear.html">Dropbear</a>). Warto także przejrzeć <code>/etc</code>, <code>/etc/conf.d</code> oraz <code>/etc/rc.conf</code>.</p><h4>Menedżer pakietów</h4><p>Menedżer pakietów (a raczej zestaw narzędzi <code>apk-tools</code>) ciężko nazwać wybitnym. Jest porównywalnie szybki z pacmanem, obsługuje podpisywanie pakietów, ma także jasną składnię. Idealnie sprawdza się na takim sprzęcie, jakim jest thinclient.<br
/> Najważniejsze polecenia <code>apk</code> to <code>add</code> do instalowania pakietów, <code>del</code> do usuwania ich, <code>update</code> do aktualizowania bazy pakietów oraz <code>upgrade</code> do aktualizowania systemu. Przydatny jest jeszcze <code>search</code> (nazwa jak sądzę nie pozostawia wątpliwości co do zastosowania), ale o wiele wygodniejsza jest wyszukiwarka pakietów dostępna na stronie projektu.</p><h4>Zarządzanie demonami</h4><p>Użytkownicy Gentoo mogą poczuć się jak w domu &#8221; jak już wspomniałem, Alpine korzysta z dobrze znanego OpenRC. Do dyspozycji oddano użytkownikom polecenia <code>rc-service</code>, <code>rc-update</code> oraz <code>rc-status</code>. Pierwsze służy do zarządzania demonem (<code>rc-service demon start/stop/restart</code>), drugie do uruchamiania demona przy starcie lub wyłączania systemu (<code>rc-update add/del demon boot/default/shutdown/sysinit</code>), ostatnie do sprawdzenia, czy wszystkie demony uruchomiły się poprawnie. Prawda, że proste?</p><h3>Statystyki</h3><ul><li><code>uname -a</code></li><pre class="brush: plain; light: true; title: ; notranslate">Linux thinclient 3.0.8-grsec #5-Alpine SMP Fri Nov 11 14:26:52 UTC 2011 i586 Linux</pre><li><code>free -m</code></li><pre class="brush: plain; light: true; title: ; notranslate">             total         used         free       shared      buffers
Mem:           241            8          232            0            0
-/+ buffers:                  8          233
Swap:            0            0            </pre><li><code>ps_mem.py</code></li><pre class="brush: plain; light: true; title: ; notranslate"> Private  +   Shared  =  RAM used	Program
 64.0 KiB +   0.0 KiB =  64.0 KiB	klogd
 68.0 KiB +   0.0 KiB =  68.0 KiB	syslogd
 68.0 KiB +   0.0 KiB =  68.0 KiB	acpid
 88.0 KiB +   0.0 KiB =  88.0 KiB	udhcpc
 88.0 KiB + 432.0 KiB = 520.0 KiB	crond
 80.0 KiB + 528.0 KiB = 608.0 KiB	getty
 76.0 KiB + 544.0 KiB = 620.0 KiB	init
216.0 KiB + 808.0 KiB =   1.0 MiB	ash (2)
356.0 KiB + 752.0 KiB =   1.1 MiB	dropbearmulti (2)</pre><li><code>df -h</code></li><pre class="brush: plain; light: true; title: ; notranslate">Filesystem                Size      Used Available Use% Mounted on
mdev                      1.0M         0      1.0M   0% /dev
shm                     120.7M         0    120.7M   0% /dev/shm
/dev/sda3                 2.7G    269.5M      2.3G  10% /
tmpfs                   120.7M         0    120.7M   0% /run
rc-svcdir                 1.0M     48.0K    976.0K   5% /lib/rc/init.d
/dev/sda1                96.8M     13.9M     78.0M  15% /boot</pre></ul><h3>Podsumowanie</h3><p>Jaki koń jest każdy widzi. System idealnie sprawdza się w ciężkich warunkach dla systemów operacyjnych. Jest lekki, responsywny, uruchamia się poniżej minuty, instalowanie pakietów także przebiega sprawnie; wszystko to, czego nie uświadczyłem w Debianie. Oczywiście nie sprawdzi się wszędzie (chociaż według zapewnień deweloperów można bez problemów zainstalować środowisko graficzne), to jest świetnym rozwiązaniem użytkowania mniej wydajnego sprzętu. I prawdopodobnie zagości u mnie na dłużej, chyba, że zacznie działać niestabilnie.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bpiotrowski.pl/1261/alpine-linux-na-wyse-9150se/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
