[Linux] Suse 9.0 opsporen ongebruikte software etc

Pagina: 1
Acties:

Onderwerpen


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Eigenlijk is het meer een algemene Linux vraag.

Als je Linux installeerd wordt er van alles geinstalleerd wat je eigenlijk nooit gebruikt, maar waar ik niet altijd zeker van ben of ik het kan weghalen of niet.

Het zelfde geldt voor dingen die je download en moet compilen, er moet van alles op het systeem aanwezig zijn aan libraries etc, en die staan natuurlijk nooit op de CD etc.

Ik krijg op een gegeven moment altijd het idee dat mijn originele installatie grote van 1 gig inmiddels uitgegroeit is tot 4 gig door alle dingen die je nodig hebt om een aantal proggies te compilen en installen.

Mijn vraag is nu, is er een programma/tool waarmee je kan kijken wat er op het systeem aanwezig is aan programma's etc en welke libraries etc daar echt voor nodig zijn en wat eigenlijk overbodig aanwezig is op het systeem? Dus alle depencies zijn voor elkaar en wat er niet nodig is gestript kan worden?

  • Wilke
  • Registratie: December 2000
  • Laatst online: 06:31
ViNyL schreef op 18 december 2003 @ 10:23:
Eigenlijk is het meer een algemene Linux vraag.
Dat denk ik niet - het is meer een distro-specifieke vraag.
Als je Linux installeerd wordt er van alles geinstalleerd wat je eigenlijk nooit gebruikt, maar waar ik niet altijd zeker van ben of ik het kan weghalen of niet.
Je bedoelt dat veel distro's "by default" veel progs installeren die je niet gebruikt. Dat komt inderdaad vaak voor. Een oplossing kan zijn om de 'geavanceerde setup' te kiezen (of hoe dat in jouw distributie ook heet), zodat je echt alles zelf kunt uitkiezen.
Of je kunt een distributie kiezen waarbij je alles sowieso zelf installeert of veel makkelijker kunt minimaliseren (i.e. Debian, Slackware, Gentoo, LFS).
In beide gevallen moet je uiteraard weten wat je doet. Maar ja: vergelijk het eens met de setup van Windows XP (of een willekeurige andere windows-versie). Daar kun je uberhaupt vrijwel niets kiezen - en als het had gekund, had je ook daar moeten weten wat je doet of je zou problemen veroorzaken (dat is dan ook de reden dat het niet kan, MS gaat er namelijk van uit dat gebruikers dom zijn - vaak niet onterecht ;) ).
Het zelfde geldt voor dingen die je download en moet compilen, er moet van alles op het systeem aanwezig zijn aan libraries etc, en die staan natuurlijk nooit op de CD etc.
Ho. Denkfout detected. Je moet geen dingen downloaden en compileren. Dat kun je doen. Maar het moet zeker niet. Je kunt ook gewoon wachten tot jouw distributie packages levert met alle dependencies automatisch erbij - als het package voor jouw distributie gecompileerd is, zijn deze dependencies vaak al geinstalleerd of anders zeker op de CD te vinden.
Ik krijg op een gegeven moment altijd het idee dat mijn originele installatie grote van 1 gig inmiddels uitgegroeit is tot 4 gig door alle dingen die je nodig hebt om een aantal proggies te compilen en installen.
Dat komt dan doordat je er zelf een zootje van maakt door niet het package management systeem van je distributie te gebruiken maar door zelf allerlei zooi te installeren.
Mijn vraag is nu, is er een programma/tool waarmee je kan kijken wat er op het systeem aanwezig is aan programma's etc en welke libraries etc daar echt voor nodig zijn en wat eigenlijk overbodig aanwezig is op het systeem? Dus alle depencies zijn voor elkaar en wat er niet nodig is gestript kan worden?
Als je netjes de package manager gebruikt hebt: ja, dan is er een database (vaak RPM) met alles er in, inclusief dependencies en weet ik wat. Probeer 'man rpm' om te kijken wat je dan allemaal voor grappen kunt uithalen.

In het andere geval gaat het niet lukken.

Vergelijk het met Windows: als je allerlei zooi installeert zonder uninstaller, krijg je het er ook niet meer fatsoenlijk af. En ja: windows is makkelijk, want alles zit er bij in. Maar als je in Windows ongebruikte libs wilt opsporen en weggooien, moet je ook gewoon goed weten wat je doet - dat lukt niet automatisch. In Linux is het eigenlijk precies zo (hoewel, als je een goede packagemanager gebruikt, werkt het misschien nog wel beter dan in Windows).

Misschien zou je het stukje van de NOS FAQ: Hoe installeer ik software onder Linux? eens moeten lezen, dat werkt misschien verhelderend.

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja misschien wel. Maar onder Windows als je een prog installeert hoef je verder nix aan extra libs etc te hebben. Omdat alles al ingebakken zit, misschien is dit ook wel de kracht van Linux, niets moet alles mag. Maar toch maakt dat het vaak lastig in mijn ogen.

Maar misschien moet ik gewoon nog een hoop leren en strikter omgaan met de packages etc...

  • Wilke
  • Registratie: December 2000
  • Laatst online: 06:31
ViNyL schreef op 18 december 2003 @ 11:10:
Ja misschien wel. Maar onder Windows als je een prog installeert hoef je verder nix aan extra libs etc te hebben. Omdat alles al ingebakken zit, misschien is dit ook wel de kracht van Linux, niets moet alles mag. Maar toch maakt dat het vaak lastig in mijn ogen.
Daar heb je op het eerste gezicht gelijk in (dat laatste). Maar ergens ook weer niet: waarom je in windows niet allerlei libs erbij hoeft te installeren, is omdat een dependancies systeem uberhaupt ontbreekt. Dit lijkt makkelijk als gebruiker - als je niet te veel rare dingen met je PC doet (dat wil zeggen: gewoon braaf Windows + IE + Microsoft Office gebruikt, en verder niet te veel rare crap installeert). Als systeembeheerder is het in feite zo ongeveer de grootste ramp die je kan overkomen. Als de term "DLL Hell" je niets zegt, moet je maar eens met google zoeken.

Hoe werkt het nl. in Windows: alle shared libraries (DLL's dus) worden gewoonlijk meegeleverd met het programma, of er wordt vanuit gegaan dat ze al aanwezig zijn op het systeem. Helaas hebben DLL's niet - zoals in Linux - een versienummer. Je kunt dus altijd maar 1 versie van elke library hebben. Uiteraard leidt dit onmiddelijk tot problemen als 2 progs dezelfde DLL gebruiken, maar een verschillende versie. In Windows NT betekende dit vaak dat het laatst geinstalleerde programma de DLL domweg overschreef - zodat de bestaande programma's die de 'oude' versie nodig hadden niet meer werkten. Interessante volgordes van precies-zo-en-zo moet je alles installeren waren het resultaat (i.e. installeer NT4, SP1, SP2, dan dit pakket, dan SP2 nogmaals om de overschreven DLL's te herstellen, dan pas SP3....etc., you get the point).

De "oplossing" *kuch* die in Win2k is gekozen is dat elk programma eenvoudig zijn eigen set van DLL's heeft. Met andere woorden, dit haalt het hele punt van DLL's onderuit, want ze worden dus niet 'geshared' tussen programma's. Immers: elk prog heeft z'n eigen versie van de DLL!


P.S. voor de MS-fans die meelezen, ik weet dat bovenstaande met het .Net framework eindelijk grotendeels is opgelost (gozer, dat werd ook eens tijd zeg :X ).
Maar misschien moet ik gewoon nog een hoop leren en strikter omgaan met de packages etc...
Het is zeker wennen inderdaad. Maar het is dus echt wel mogelijk om het netjes te houden hoor - alleen je moet even doorkrijgen hoe en waarom alles werkt :)

Ennuh, uiteraard zouden ze in Linux packages ook alle dependancies (dat wil zeggen: libraries) kunnen meeleveren zodat je zeker weet dat je alles hebt, maar dan zou zelfs zoiets simpels als een Instant Messaging client al snel 25 MB groot worden. Daarom is in de eerste plaats zo'n dependancies systeem uitgevonden natuurlijk ;)

  • Wilke
  • Registratie: December 2000
  • Laatst online: 06:31
Als je toch nieuwsgierig bent en met de hand wilt bekijken welke libraries een bepaald programma nodig heeft, kun je dat doen met 'ldd <naam-van-een-binary>'.

Het lijstje wat daar uit komt zijn alle dynamisch gelinkte libraries (.so files, dat staat voor Shared Objects). Het is net zo zeker als 1+1=2, dat het betreffende programma niet meer werkt als je een van de bestanden uit het resulterende lijstje weggooit.

Maar ja, het is natuurlijk niet te doen om dat met de hand voor elk programma uit te pluizen.

En daarom is het dus belangrijk dat je de package manager van je systeem gebruikt, want die houdt deze zaken zelf automatisch bij!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ok Thanks Wilke, ben er een stuk wijzer door geworden. Bedankt voor je reacties!
Pagina: 1