Technomorous

Vrstvy ve vrstvách jiných vrstev

Sdílet: Twitter - Facebook

Chtěl jsem původně vést obsáhlou filipiku na téma nabobtnalosti software. Vývojáři jsou totiž rok od roku více pošahaní a mají pocit, že čím více vrstev a vrstvami generovaných závislostí má i úplně jednoduchá utilita, tím více adidas. Beztak to za koncového uživatele vyřeší někdo jiný - chudák admin, automatický balíčkovač, Děda Mráz - prostě někdo. Nakonec jsem se ale rozhodl, že své prsty ušetřím od psaní již stokrát psaného, protože běh vesmíru tím stejně nezměním. Místo toho nechám mluvit fakta. Toto je seznam závislostí, které je nutné doinstalovat, aby ve Slackware běžel certbot, klient pro Let's Encrypt:

  • asn1crypto
  • augeas
  • cffi
  • configobj
  • cryptography
  • enum34
  • funcsigs
  • idna
  • ipaddress
  • josepy
  • letsencrypt
  • mock
  • ndg_httpsclient
  • packaging
  • pbr
  • psutil
  • pyasn1
  • pycparser
  • pyOpenSSL
  • pyparsing
  • pypy
  • pyrfc3339
  • python2-pythondialog
  • python-augeas
  • python-certifi
  • python-chardet
  • python-configargparse
  • python-parsedatetime
  • python-requests
  • python-urllib3
  • pytz
  • requests-toolbelt
  • six
  • werkzeug
  • zope.component
  • zope.event
  • zope.interface

Není toho zrovna málo co?
Stáhnout SlackBuild, stáhnout zdroják, spustit skript, počkat až skončí, nainstalovat balík, jít o položku dál. Jistou část tohoto seznamu bylo zapotřebí vyzkoušet vícekrát, ve více verzích, protože verze doporučená pro moji verzi Slackware byla starší, než minimální nutná pro běh certbotu či jiné položky ze seznamu. Některé položky se na seznam dostaly, až když jsem zkusil certbot pustit a on s výjimkou spadl, na to si u software psaného v Pythonu už pomalu začínám zvykat.

Vrstvy ve vrstvách jiných vrstev. Nechal bych autory instalovat to na podobném systému, jaký mám já. Takhle to mají v životě příliš jednoduché. Napíšou "Tested on Fedora, Ubuntu and RedHat" a tím jejich činnost končí. Co vše se musí stát, kolik procesorového výkonu využít, kolik elektřiny spotřebovat, kolik neobnovitelných zdrojů vyplýtvat, jen aby jejich software běžel, o tom mají jen mlhavou nebo vůbec žádnou představu. Nebo ji mají a je jim to jedno - nevím, co je horší.


Jméno
Web
E-Mail
Jsem člověk
Text komentáře

1. pol (10. dubna 2019, 21:00)
keď už si v tom, skompiluj si amavis + spamassassin. to je ešte navrstvenejšia chuťovka ;-)

2. berk (10. dubna 2019, 21:06)
fuj fuj fuj, já používám getssl
https://github.com/srvrco/getssl

3. Softhouse Ltd. (10. dubna 2019, 21:21)
Už len to, že nie je možné nainštalovať hotový inštalačný balík a je treba kompilovať zdrojáky a riešiť závislosti je dosť od veci.

4. Logout (10. dubna 2019, 21:29)
[3] Naopak, je to důvod, proč Slackware používám. Instalační balík v automatickém balíčkovacím systému nás dovedl až sem - to já hrát nehodlám :-)

5. Tritol (10. dubna 2019, 23:35)
(tritol@lenovo)~$ yay -S certbot
řeší se závislosti..
kontrola konfliktních balíčků...

Balíčky (18) python-acme-0.33.1-1 python-configargparse-0.14.0-2 python-configobj-5.0.6-4 python-future-0.17.1-1 python-josepy-1.1.0-2 python-mock-2.0.0-4 python-parsedatetime-2.4-3 python-pbr-5.1.3-1
python-pyrfc3339-1.1-2 python-requests-toolbelt-0.9.1-1 python-zope-component-4.5-1 python-zope-deferredimport-4.3-2 python-zope-deprecation-4.4.0-1 python-zope-event-4.4-1
python-zope-hookable-4.2.0-2 python-zope-interface-4.6.0-1 python-zope-proxy-4.3.1-1 certbot-0.33.1-1

Celková velikost ke stažení: 2,08 MiB
Celková velikost po instalaci: 12,77 MiB

:: Pokračovat v instalaci? [A/n] n

6. Logout (11. dubna 2019, 6:04)
Děkuji Tritolovi za názornou ilustraci toho, co jsem popisoval. Abych to mohl ilustrovat já, musel bych si nainstalovat některou z těch pseudodistribucí, kde stačí napsat příkaz a Děda Mráz vyřeší vše za mě, čímž bych jen podpořil principy, se kterými nesouhlasím. Tím, že se obětoval on, já už nemusím a přesto je jasně ukázáno, v jakých střevních produktech svět je.

7. Tritol (11. dubna 2019, 8:59)
Všem technomorousům doporučuji neplýtvat energií na kompilaci cizích řešení, ale napsat si řešení svá a klidně monolitická bez závislostí. Budou pak moci ostatní několik měsíců obšťastnovat blogem jaký protokol případně službu právě implementovali a jak úspěšně se s tím popasovali. Další články určitě přijdou ve chvíli, kdy ve všech svých projektech budou opravovat stejné chyby a přidávat nové vlastnosti (protože bez závislostí tam bude muset být všechno copy&paste). Takový blog by mě možná i zaujal, protože bych se dozvěděl, jak se co řeší a jak je to zapeklité, případně jak hromadně opravit nekolik zdrojáků naráz.
Nevím jak dlouho (asi dost) Logout řešil své závislosti, můj Děda Mráz to měl za několik sekund a instalace by byla do minuty. Žádný světonázor mě nepřesvědčí, abych to dělal po jeho.
BTW: doporučuji všechno linkovat staticky, jinak taky vznikají závislosti a někdy je výpis z ldd opravdu Mordor...

8. Logout (11. dubna 2019, 9:29)
Vyvrácení pozic, které nikdo nezastává je jeden z obvyklých argumentačních faulů. Nikde jsem netvrdil, že je třeba psát monolitický software. Jen poukazuju na to, že by se autoři měli trochu zamýšlet nad vrstvením. Aby utilita, která odněkud stahuje certifikát , měla víc závislostí než webserver a sql server dohromady včetně skriptovacích jazyků, to může přijít normální jen čistokrevnému pythonistovi.

9. Tritol (11. dubna 2019, 10:32)
Jen dovádím věci ad absurdum. Jako autor potřebuješ něco vyřešit, tak se podíváš jestli už to někdo neřešil a když jo, použiješ. Když nepoužiješ, vynalézáš znovu kolo, což může být někdy záslužné, ale nepřijde mi vhodné někoho kritizovat za to, že volí jednodušší cestu. Osobně jsem rád, že někdo už tu cestu prošlapal za mě a i toho Dědu Mráze příslušně vycvičil...

10. Logout (11. dubna 2019, 10:59)
Toto je poslední komentář k tématu: Pokud je to na hlavu padlé, pak klidně kritizovat budu. Vždycky.

11. Krtek (11. dubna 2019, 18:59)
Zeptam se jako nezávislej a neznalej laik:
to nejde ty části programů ze závislostí prostě nacpat přímo do toho instalovanýho zkompilovanýho programu ? Na woknech mi stačí pakárna zvaná net framework... Utilita chce verzi 2.5 nebo vyšší... Nezajímá jí, že mám nainstalovanou verzi 3.0, 4.0, 5.x a kdo ví co. Musim dotáhnout net framework 2.5 a tim tam nacpat další balast pro jeden blbeb mediální přehrávač.
Zlatý časy programování v assembleru, čim to maji dneska lidi jednodušší, tim víc blbnou.


TOPlist