abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:44 | IT novinky

    Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.

    Ladislav Hagara | Komentářů: 4
    dnes 14:33 | Bezpečnostní upozornění

    Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    dnes 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 18
    dnes 03:33 | Nová verze

    V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Komunita

    Ubuntu 27.04 bude Tenacious T-Rex.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Humor

    Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 12:44 | Upozornění

    Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.

    Ladislav Hagara | Komentářů: 16
    včera 11:11 | IT novinky

    Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si

    … více »
    Ladislav Hagara | Komentářů: 11
    včera 00:55 | Pozvánky

    Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do

    … více »
    bkralik | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2840 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    spkg podruhé

    15.6.2005 15:22 | Přečteno: 1274× | Ostatní

    Můj první příspěvek vyvolal několik kritických reakcí, za což vřele děkuji. Kritika je vždycky potřeba. Minule to byl jen takový nástřel mé nespokojenosti s pkgtools. Dnes napíšu o tom co by mělo a co by nemělo být spkg a odpovím na některé připomínky z minula.

    O čem to je?

    Slackware používám hlavně kvůli jednoduchosti jeho balíčkovacího systému a jeho minimalističnosti. To je pro mě hodně důležité, protože já balíčkovací manažer využívám velmi často a způsoby kdy potřebuji poměrně dobře vědět co všechno dělá a aby to dělal co nejrychleji. (přiznávám, že nejsem asi nejlepším příkladem typického usera)

    Nenechte se zmílit, koncept pkgtools se mi velmi líbí. Pkgtools mají jako nízkoúrovňové nástroje všechny funkce které potřebuji - instalalce, upgrade a odinstalace. Tím nízkoúrovňové myslím to, že se nestarají o nic jiného než o udržování seznamu nainstalovaných balíčků a k nim patřících souborů.

    O čem to není?

    Ne opravdu to není o reimplementaci funkcí RPM, či DPKG. Či jiných pododbných oblud (co do velikosti kódu a množství funkcí). Mým cílem naopak je, aby to co do velikosti kódu a funkcí bylo srovnatelné s původními shellovými skripty.

    Vady na kráse pkgtools - z mého pohledu :)

    Jaký je můj cíl?

    Hlavní cíl je zrychlení. U instalace lze dosáhnout zrychlení 2x-3x, u upgrade 6x-10x, u odstraňování 10x-20x. Dalším cílem je kompatibilita se stávajícími pkgtools. Tedy stejný formát databáze. Minimalizace závislostí. No a nakonec librifikace všech činností balíčkovače (včetně přístupu k databázi) a kvalitní dokumentace.

    K připomínkám z minula

    Instaluju a upgraduju i na "šunkách" P/166 64MB a nikdy jsem problémy s rychlostí neměl a navíc čas instalací z celkového času využití počítače je naprosto zanedbatelný.

    Taky občas instaluju na jedné šunce: 486/50Mhz/16MB. :) Ne, ale o tom to není. Já si udržuju vlastní živou distribuci, takže sem tam potřebuju udělat "plnou" instalaci do ROOT=/livecd, takže zrychlení 2x-3x by občas nebylo vůbec na škodu. Jsou prostě lidi, kterým se rychlý b.m. může hodit.

    Removepkg mi jako shellscript nepřijde zbytečně pomalé. Před smazáním souboru nebo adresáře se provadí docela dost testů (jestli není obsažen v jiném balíčku, podle timestampu jestli byl změněn, jestli adresář, který byl balíčkem vytvořen neobsahuje nové soubory, generování seznamu linků vytvořených z instalačního skriptu, atd.). Nic z toho mi nepřipadá zbytečné a zjevně špatně optimalizované.

    Na shellscript to možná pomalé není, ale pokud lze udělat ony testy duplicit a generování seznamu linků tak, že třeba pro balíček s 5000 soubory to na systému, kde je 150 000 souborů lze stihnout za 5ms, tak proč to tak nedělat? Jen detail: removepkg timestampy nekontroluje. Nebo to aspoň v tom bordelu nemůžu najít. A hlavně mě nejde do hlavy s čím by je asi porovnával, když si je neukládá do databáze.

    Installpkg rozbaluje archiv dvakrát? Na začátku pouze rozbalí obsah instalačního adresáře, když nemůže najít popisný externí soubor. Také testuje integritu archivu (-tzf) a pak ho teprve jednou rozbalí. Proč je tam ta extrakce popisku balíčku snad nemusím vysvětlovat.

    Ano. Minimálně dvakrát. Jednou test integrity, podruhé rozbalení /install (tady záleží na tom kde se v archivu adresář /install nachází což je díky tomu že začíná na "i" naštěstí před /usr a /opt, takže to není až zas tak strašné) a napotřetí naostro.

    Přerušení při instalaci glibc aj."páteřního" sw, ať už zdůvodu hw problémů nebo interaktivně, bývá věc fatalní, ale to platí stejně pro všechny mě známé způsoby instalací. Dokonce ty, které používají k evidenci instalací databáze místo prostých textových souborů, bývají daleko náchylnější. A obnova se může snadno řešit použitím rescue CD. U instalace ostatních balíčků to nevadí. Navíc bych chtěl vidět "usera", který instaluje glibc ;-) Ale vy jste asi myslel toho s uid 0.

    Samozřejmě. Pravděpodobnost selhání ovlivnit nemůžeme. Co ale můžeme ovlivnit je délka doby, kdy selhání může vést k destrukci systému. Ovlivňuje je délka "ostrých" operací na databázi a hlavně délka doby po kterou jsou na souborovém systému promíchány soubory starého a nového balíčku. A tato doba se dá velmi rapidně zkrátit pomocí způsobu, který se chystám v následujícím týdnu naprogramovat. V současnosti pkgtools dělají to, že nechávají tar přepisovat staré soubory postupně tak jak jsou rozbalovány nové. Je jasné že přerušení upgrade povede k problémům. Ať už přijde odkudkoliv.

    Souhlas, pkgtool je hlavně pro zobrazení nainstalovaných balíčků nepoužitelný. Nevím k čemu tam je, protože není nad ls, grep a less. Snad možná kvůli newbies, kteří se trochu bojí CLI :-D

    To je pěkné, ale právě noobs potřebují např. krátký popis balíčku, díky jehož získávání je to jak šnek.

    API k přístupu k databázi balíčků? Si děláte srandu? Jukněte se do /var/log/packages|scripts|removed_packages|removed_scripts . Pak na ls, grep a další základní unixovské nástroje a možná vás už ta otázka znovu nenapadne.

    Si srandu nedělám! :) Teď trochu vážně. Ono je pěkné mít ls a grep, ale pak nemůžete čekat, že se dostanete u prohlížení balíčků pomocí pkgtool pod 40s při startu. LOL

    Přeju vám hodně úspěchů s realizací vašeho projektu a také hodně nespokojených uživatelů oficiálních balíčkovacích nástrojů, kteří by měli potřebu používat něco jiného. Já mezi nimi nebudu, protože filozofie administrativních nástrojů u Slackware, tj. co nejprimitivnější a nejpřímější, mi zcela vyhovuje i za cenu, že nepoběží tak rychle, jak by teoreticky mohly. ... S tím příkladem k /etc/group máte pravdu, ale já to chápu tak, že to je už dlouho zavedený způsob snad na všech *nixech co znám nebo o nich četl a filozofií Slackware je, že pokud to není nezbytně nutné, tak se právě snaží nepřidávat žádné svoje specialitky, jako je tomu často vidět u některých dister. Ale respektuju, že někomu jinému tento přístup nevyhovuje nebo na to dokonce kašle.

    No já na té primitivnosti, jak jste již poznal nic měnit nechci (dokonce ani nahrazovat původní databázi balíčků). Jediné co chci je rychlost. Takže ještě uvidíme. Osobně mi bude stačit úplně jeden spokojený uživatel, a to já. :)

    Happy buffer overflows

    Tak z toho už jsem naštěstí vyrostl. :)

    Nemít žádnou úroveň abstakce vede k ... tedy vlastně nikam nevede, protože to neumožňuje jakkoliv měnit implementaci. Proto existují API i k takovým trivialitám jako /etc/group.

    Přesně! Navíc to jak to dělám já umožní zároveň používat všechny existující nástroje které používají originální databázi balíčků a zároveň do databáze ukládat další data (kontrolní součty, práva k souborům, cokoliv).

    Příště?

    Příště se rozepíšu více o způsobu implementace.

           

    Hodnocení: -

    zatím nehodnoceno
            špatné • dobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    15.6.2005 16:30 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Che
    Podle těch požadavků nakonec napíšeš librpm, akorát to nebude portabilní, nebude to pořádně otestované, nebude to mít API pro další jazyky a pravověrní Slackwaristi to stejně nebudou používat. Ale co, kdo si hraje, nezlobí.
    15.6.2005 19:54 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Che
    Ano samozřejmě. Ještě jsi zapoměl, že to nepujde zkompilovat a když už ano, tak to nepůjde spustit. :)
    15.6.2005 20:27 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Che
    Zkompilovat a spustit to možná půjde. Ale nepůjde z toho udělat balíček ;-)
    15.6.2005 21:55 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Che
    To je fakt. To ani není cílem. (viz. požadavky) :)
    15.6.2005 18:25 Triton | skóre: 10 | blog: keep_slacking
    Rozbalit Rozbalit vše Pár poznámek II
    Část příspěvku byla asi reakcí na mě ;-)

    Jen detail: removepkg timestampy nekontroluje. Nebo to aspoň v tom bordelu nemůžu najít.
    delete_files() {
     while read FILE ; do
      if [ ! -d "$ROOT/$FILE" ]; then
       if [ -r "$ROOT/$FILE" ]; then
      if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then  
         echo "WARNING: $ROOT/$FILE changed after package installation."
        fi
        if [ ! "$WARN" = "true" ]; then
    ...
    

    Ano. Minimálně dvakrát. Jednou test integrity, podruhé rozbalení /install ...
    Rozbalení jako extrakce obsahu archivu do filesystému se opravu provede jen jednou a využije se cache z předchozího "rozbalení v paměti" při testu integrity. Ale to je přece nutné. Přece se nebude naslepo rovnou provádět instalace, když může být nedokončena kvůli chybě v archivu. Sice by se trochu ušetřilo pokusným rozbalením do pomocného adresáře a v případě úspěchu pak přesunutím do kořene, ale přijde mi to jako zbytečná krkolomnost.
    Jak jinak lze získat popisek balíčku, pokud není v externím souboru, pro jeho zobrazení před samotnou instalací, než extrahováním install/slack-desc ?
    Jak už jsem psal, preferuji jednoduchost shellscriptu oproti rychlosti, vy zřejmě opak.

    Ono je pěkné mít ls a grep, ale pak nemůžete čekat, že se dostanete u prohlížení balíčků pomocí pkgtool pod 40s při startu.
    To jsem moc nepochopil. Např. (nekešované)
    triton@darkstar:~$ time ls /var/adm/packages | grep python
    python-tools-2.4.1-noarch-1
    python-2.4.1-i486-1
    
    real    0m0.032s
    user    0m0.016s
    sys     0m0.006s
    
    triton@darkstar:/var/adm/scripts$ time grep -lr usr/bin/nmap /var/adm/packages
    /var/adm/packages/nmap-3.81-i486-1
    
    real    0m0.028s
    user    0m0.013s
    sys     0m0.013s
    

    Váš entuziasmus obdivuji a <nezprofanovaně>upřímně</nezprofanovaně> přeji úspěšné dotažení nápadu k cíli.

    Happy coding :-)

    Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
    15.6.2005 19:18 Triton | skóre: 10 | blog: keep_slacking
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Ještě doplním:

    triton@darkstar:~$ ls /var/adm/packages|wc -l
    459
    triton@darkstar:~$ du -s /var/adm/packages
    15092    /var/adm/packages
    dunric@darkstar:~$ 
    
    P-M/600
    Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
    15.6.2005 20:04 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Jo jo, byla to reakce na vás. :)

    Pokud chcete zobrazit všechny balíčky v menu: x 500 = 16 seknud. (minimálně, něco ještě sežere režie shellu)

    Toho timestampu jsem si nevšiml.

    Cache využije, ale pro zabalený archiv, takže dekomprese se provádí stejně dvakrát.
    15.6.2005 22:00 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Tak jsem se díval podrobněji na archivy několika balíčků a zjistil jsem, že s železnou pravidelností je slack-desc až jako úplně poslední soubor v archivu. To znamená, že gzip -d se provádí 3x vždy na celý soubor.

    Zajímavé.
    16.6.2005 10:25 Triton | skóre: 10 | blog: keep_slacking
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Pokud chcete zobrazit všechny balíčky v menu: x 500 = 16 seknud. (minimálně, něco ještě sežere režie shellu)
    Na pkgtoolu jsme se shodli. Já se snažil ukázat, že zobrazení všech 459 balíčků standardními nástroji trvá zlomky vteřin.
    Tak jsem se díval podrobněji na archivy několika balíčků a zjistil jsem, že s železnou pravidelností je slack-desc až jako úplně poslední soubor v archivu. To znamená, že gzip -d se provádí 3x vždy na celý soubor.
    Pokud má tar v parametru místo seznam adresářů, přidává na dané úrovni jeho obsah reverzně. Sám nevím, proč tomu tak je.

    To, na jaké pozici v taru se nachází slack-desc nebo jakýkoli jiný soubor přece nemá vůbec žádný vliv. Pokud chci cokoliv z tgz vyextrahovat, vždycky se prvně provede kompletní dekomprese gzipem.

    Minule jsem souhlasně uvedl, že v installpkg je teoreticky prostor pro optimalizaci, kdy by se s jedním rozbalením vystačilo. Přibyl by ale mezikrok pro přesun z dočasného do kořenového adresáře, resp. úklid po narušeném archivu. I tak by to bylo sice rychlejší, ale přijde mi to méně elegantní řešení bez valného přínosu. Nebo vás napadá ještě jiný elegantnější nebo rychlejší algoritmus ?

    Zkusil jsem si změřit čas testu a čas extrakce velkého tgz archivu(cca 60MiB) a test byl o 1/2 - 2/3 kratší (fs ext3, noatime).

    Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
    16.6.2005 17:16 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Pár poznámek II

    To, na jaké pozici v taru se nachází slack-desc nebo jakýkoli jiný soubor přece nemá vůbec žádný vliv. Pokud chci cokoliv z tgz vyextrahovat, vždycky se prvně provede kompletní dekomprese gzipem.

    Má. Jakmile vyextrahuje ty soubory, které jsou požadovány, tak končí a dál nečte.

    Zkusil jsem si změřit čas testu a čas extrakce velkého tgz archivu(cca 60MiB) a test byl o 1/2 - 2/3 kratší (fs ext3, noatime).

    To je jasné.

    16.6.2005 18:48 Triton | skóre: 10 | blog: keep_slacking
    Rozbalit Rozbalit vše Re: Pár poznámek II
    ... je slack-desc až jako úplně poslední soubor v archivu. To znamená, že gzip -d se provádí 3x vždy na celý soubor.
    To, na jaké pozici v taru se nachází slack-desc nebo jakýkoli jiný soubor přece nemá vůbec žádný vliv. Pokud chci cokoliv z tgz vyextrahovat, vždycky se prvně provede kompletní dekomprese gzipem.

    Má. Jakmile vyextrahuje ty soubory, které jsou požadovány, tak končí a dál nečte.

    Docela mě to překvapuje, ale asi nechápete základní strukturu tgz archivu. Všechny soubory jsou přidány do jednoho taru a tento archiv je potom jako jeden soubor komprimován např. gzipem, tj. vaše dedukce: slack-desc je na konci taru => gzip -d se musí provést na celý soubor, je chybná. To umístění má vliv až na druhou fázi, tj. rozbalení samotného taru.
    Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
    16.6.2005 20:15 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Ne. Tar spouští gzip -d a po kouscích (třeba 16k) si od něj bere rozbalená data a na nich dělá další zpracování (dekódování hlaviček, ukládání dat do souborů). Jakmile ze streamu získá všechny soubory, které se od něj chtějí, tak končí. Takže pokud jsou data až na konci, archivu tak musí prolézt celý archiv. Pokud jsou na začátku, tak je načte a zbytkem se vůbec neobtěžuje.

    Teď to zkouším a koukám, že to GNU tar takhle nedělá. Žádný program není dokonalý. :) Takže se vždy musí dekomprimovat třikrát celý soubor.

    Nicméně to je stejně divné, dávat soubory, které potřebuji z archivu rychle dostat až na konec.
    16.6.2005 22:27 Triton | skóre: 10 | blog: keep_slacking
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Teď to zkouším a koukám, že to GNU tar takhle nedělá. Žádný program není dokonalý. :) Takže se vždy musí dekomprimovat třikrát celý soubor.
    Jsem rád, že jste si to moje tvrzení ověřil :-)

    Třeba vás to bude inspirovat k napsání vlastní implementace taru ;-)

    Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `
    17.6.2005 16:06 megi | skóre: 11 | blog:
    Rozbalit Rozbalit vše Re: Pár poznámek II
    Díky tomu, že to archiv proleze celý, tak už by mohla být další kontrola zbytečná. Takže možná že i tak by šlo installpkg zoptimalizovat alespoň trochu.

    Mimochodem: Už se stalo. :)

    Založit nové vlákno • Nahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.