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 12:55 | Nová verze

    CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.

    jardaIT | Komentářů: 0
    dnes 12:22 | Bezpečnostní upozornění

    Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].

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

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Zajímavý software

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

    Ladislav Hagara | Komentářů: 21
    včera 14:00 | Zajímavý projekt

    Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.

    Pinhead | Komentářů: 6
    včera 02:22 | Zajímavý software

    Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.

    Ladislav Hagara | Komentářů: 0
    včera 01:11 | Nová verze

    Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    13.5. 21:22 | Bezpečnostní upozornění

    Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.

    Ladislav Hagara | Komentářů: 1
    13.5. 14:00 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.

    Ladislav Hagara | Komentářů: 8
    13.5. 12:55 | IT novinky

    Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1628 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: odstranění nepotřebných knihoven

    25.2.2005 15:10 Ondřej
    odstranění nepotřebných knihoven
    Přečteno: 316×
    Ahoj, potřeboval bych poradit, jestli existuje nástroj, který by mi pomohl s úklidem systému. Modelová situace: nainstaluju rpm balíček, současně se mi stáhne tuna závislostí. Pak zjistím, že mi balíček nevyhovuje, ale po jeho smazání mi knihovny zůstanou "viset", postupně se hromadí a zbytečně zabírají místo. Potřeboval bych zřejmě něco, co by mi vypsalo balíčky, na kterých nic nezávisí, nebo třeba zobrazilo strukturu závislostí. Nevíte o něčem?

    Odpovědi

    25.2.2005 17:17 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Jak může počítač poznat, co "nepotřebujete", to netuším... Ale pokud chcete vypsat všechny balíčky, které jsou ve "stromu závislostí" až úplně nakonci (tj. na nich přímo nic nezávisí, dají se přímo odinstalovat) a používáte Mandrake, tak to dělá příkaz urpmi_rpm-find-leaves.

    Předpokládám, že jiné systémy pro řešení závisostí (yum, apt) mají něco podobného, ale nepoužívám...
    25.2.2005 17:36 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Poznat to nemůže, ale může si pamatovat, že se něco instalovalo jako závislost jiného balíčku. Ale rpm takové věci neřeší, takže leda nějaká nadstavba -- a navíc důsledně používaná.
    25.2.2005 18:06 pukero
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    V Debianu existuje utilitka deborphan. Umi vypsat balicky, na kterych neni zadna zavislost. Impicitne vypisuje pouze balicky ze sekce libs a oldlibs. Bohuzel pracuje pouze nad balicky debianu :-). Je tedy velmi jednoduche dohledat knihovny, ktere nejsou vyuzivany. Ale funguje to jen za predpokladu, ze vyuzivate pouze debiani balickovaci system nebo si pamatujete, ktere knihovny nesmite odstranit.
    25.2.2005 18:20 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    V Debianu je mnohem lepší používat jenom aptitude, které si pamatuje co bylo doinstalováno kvůli závislostem a automaticky to odstraňuje, pokud to již není potřeba.
    25.2.2005 18:23 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Úplně primitivní metoda, jak vypsat balíčky, na nichž nic nezávisí, je
    for x in `rpm -qa`; do rpm --test -e $x 2>/dev/null && echo $x; done
    
    Lze z nich vybrat jen ty v sekci System/Libraries, System Environment/Libraries, nebo jak se to kde jmenuje. Ale kdyby měl člověk psát něco pořádného, měl by použít pythoní API, protože to je mnohem efektivnější než tisíc spouštění příkazu rpm...
    10.6.2006 09:54 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Tohle ale není dokonalé. Pokud mám v systému dva balíčky, kde mezi nimi existuje nějaká závislost a přitom žádný další balíček na nich nezávisí, tak mi uvedená metoda vypíše pouze jeden z těch balíčků. Tedy postup by bylo nutné iterovat, dokud nejsou další balíčky k odebrání.
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    25.2.2005 20:04 Ondřej
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Díky za odpovědi, skutečně jsem chtěl jen najít balíčky na nichž nic nezávisí. Které z nich nepotřebuju bych si rozhodl sám ;)

    Nicméně používám FC3, takže ani urpmi, ani deborphan nepomůžou. Až budu mít čas, zkusím si to nabastlit sám, jak radil Yetti. Pokud se nebudu za výsledek stydět, možná pošlu link:)
    26.2.2005 09:21 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Ještě by ti mohlo pomoct vyhledat v /lib a /usr/lib s atime starším než, k nim pohledat rpmka, ke kterým to patří a odstraňovat je. Tak můžeš odstraňovat i programy co nikdo nepoužívá. Jestli je to ale jen tvůj počítač, tak snad víš co používáš, že? ;-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    26.2.2005 09:30 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    To ovšem nesmíš spouštět ldconfig ;-) o prelinku ani nemluvě...
    27.2.2005 23:52 Ondřej
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Tak jsem sesmolil toto:
    import rpm
    
    def find_leaves(ts):
    
      req_lookup = {}
      for header in ts.dbMatch():
        requirements = header[rpm.RPMTAG_REQUIRENAME]
        if requirements:
          for r in requirements:
            req_lookup[r] = None
    
      orphans = []
      for header in ts.dbMatch():
        pkg_required = False
        for pkg in header[rpm.RPMTAG_PROVIDES] + header[rpm.RPMTAG_FILENAMES]:
          if req_lookup.has_key(pkg):
            pkg_required = True; break
    
        if not pkg_required:
          orphans.append(header['name'])
    
      return orphans
    
    leaves = find_leaves(rpm.ts())
    leaves.sort()
    
    for leaf in leaves:
      print leaf
    
    Ale skript najde míň balíčků než one-liner od Yetiho. Vidíte chybu?
    28.2.2005 09:46 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Nenajde to balíčky, které potřebují samy sebe, ale nic jiného je nepotřebuje.
    28.2.2005 12:51 Ondřej
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Prosím o radu, ve vnitřnostech rpm se nevyznám, rpm-python nemá žádnou dokumentaci, inspiraci beru z rpmUtils v balíčku yum.

    Jak může balíček potřebovat sám sebe? To je samozřejmé, tak proč by to měl nějak deklarovat? Moc tomu nerozumím.
    28.2.2005 13:28 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    To je běžná situace, když něco obsahuje binárky i knihovny, protože ty binárky potřebují ty knihovny, které jsou ovšem v balíčku s nimi. Sice by to šlo odfiltrovávat, ale proč, když to není chyba.

    Dokumentace k rpm modulu bohužel opravdu prakticky neexistuje, API je podobné API rpmlib, ale ne stejné.
    Stanislav Brabec avatar 1.3.2005 12:48 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: odstranění nepotřebných knihoven
    Takto je to pro jeden balík:
    rpm -q --whatrequires $( rpm -q --provides balík | sed 's/ .*//' ; rpm -ql balík ) | grep -v "no package requires "
    
    Pro všechny to bude ve smyčce, kde budete kontrolovat, zda je výsledek prázdný.

    Založit nové vláknoNahoru

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

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