find_external_SlackPkg_files.sh: uno script per maniaci

Usate questo forum per proporre nuovi articoli, creare gruppi di lavoro, segnalare problemi, collaborare in genere al progetto Wikislacky.

Moderatore: Staff

Regole del forum
1) Citare l'eventuale nome e link dell'articolo della wiki.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da ZeroUno »

Procopio ha scritto:non ho risposto in publico perchè non ero sicuro che i file che venivano visualizzati non invadessero troppo la mia stessa privacy
Posta una decina di file a campione di quelli che sei sicuro che non violino la tua privacy. Il concetto è questo: qualsiasi file che pensi che violi la tua privacy non appartiene di sicuro ai pacchetti di slackware.
Se sospetti che un file sia stato mal trovato dallo script dai un grep nomefile /var/log/packages/* e grep nomefile /var/log/scripts/*
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da Procopio »

si ma infatti il pacchetto trova solo file che non sono della slack, e sono quelli che io voglio cancellare perchè ce ne son troppi, lo script cerca file esterni alla slack in tutto il sistema tranne che nella home oltre che in altre directory, quindi proprio i ile personali non ci sono.

Ho lanciato lo script su tuttto il sistema tranne che

Codice: Seleziona tutto

/fat-c
/bin/[
/usr/bin/[
/usr/share/fonts/*/fonts.dir            mkfontdir
/usr/share/fonts/*/fonts.scale          mkfontscale
/home
/mnt
/opt
/tmp
/usr/share/mime                         update-mime-database
/var/cache/fontconfig                   fc-cache
/var/cache/ldconfig                     ldconfig
(oltre a quelli che già filtra lo script)

il risultato è che ha trovato 6000 file esterni alla distribuzione, ora io li vorrei rimuovere perchè stanno solo lì a creare impiccio ma non voglio fare qualche danno....allego un elenco con quelli che io eliminerei tra questi 6000 che mi ha trovato
Allegati
file_che_toglierei.txt
(224.43 KiB) Scaricato 161 volte

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da Procopio »

niente? ma com è possibile che quando allego il file, sia in mp che in pubblico poi non risponda più nessuno? :roll: :roll: :lol: :lol:

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

Scusa il ritardo con cui scrivo!!! I file che mi hai inviato via email li ho ricevuti correttamente. E' vero che lo script trova un sacco di file ma è anche vero che sono localizzati tutti sotto poche directory. Vediamo un po' di fare un'analisi.

Partiamo dai file da NON CANCELLARE:
  • i file sotto /boot sono creati da lilo, a parte 'boot_message.txt' che credo l'abbia creato tu.
  • il file: /usr/man/whatis viene creato e mantenuto dal comando '/usr/sbin/makewhatis'.
  • I seguenti file:

    Codice: Seleziona tutto

    /bin/bash
    /usr/X11R6
    /usr/X11R6/man
    /usr/X11R6/libexec
    /usr/X11R6/share
    /usr/X11R6/bin
    /usr/X11R6/include
    /usr/X11R6/lib
    fanno correttamente parte della Slackware, ma vengono creati con un doinst.sh un po' troppo complicato e quindi lo script non li rileva.
  • I seguenti file:

    Codice: Seleziona tutto

    /usr/lib/lib3dkit.so.1
    /usr/lib/libncursesw.so.5
    /usr/lib/libdevmapper-event-lvm2snapshot.so.2.02
    /usr/lib/libdevmapper-event-lvm2mirror.so.2.02
    /usr/lib/libncurses.so.5
    sono creati da 'ldconfig'. A mio avviso dovrebbero essere creati da i doinst.sh dei pacchetti, ma comunque...
  • questi

    Codice: Seleziona tutto

    /etc/udev/rules.d/70-persistent-cd.rules
    /etc/udev/rules.d/70-persistent-net.rules
    sono creati da udevd la prima volta che lo si esegue.
  • questo file:

    Codice: Seleziona tutto

    /usr/doc/kbd-1.15.2/utf/âªâ¬
    nel pacchetto relativo porta il seguente nome:'usr/doc/kbd-1.15.2/utf/\342\231\252\342\231\254' dunque lo script non lo trova.
  • Altri file creati a run-time o da te, sono:

    Codice: Seleziona tutto

    /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
    /usr/share/fonts/misc/encodings.dir
    /usr/lib/mozilla/plugins/libflashplayer.so
    /var/lib/alsa/asound.state
    /var/lib/logrotate/status
    /var/lib/slocate/slocate.db
    /var/lib/dbus/machine-id
    /usr/lib/pkgconfig/xkeyboard-config.pc
    /var/lib/dhcpcd/dhcpcd-eth0.lease
  • questi:

    Codice: Seleziona tutto

    /etc/shadow-
    /etc/group-
    /etc/fstab
    /etc/localtime
    /etc/lilo.conf
    /etc/termcap
    /etc/rndc.key
    /etc/hardwareclock
    /etc/default/rscsi
    /etc/passwd-
    /etc/rc.d/rc.keymap
    /tc/rc.d/rc.gpm
    /etc/X11/app-defaults/GXditview-color
    /etc/gtk-2.0/i486-slackware-linux/im-multipress.conf
    /etc/httpd/php.ini
    /etc/httpd/mod_php.conf
    /etc/random-seed
    /etc/ld.so.cache
    /etc/adjtime
    /etc/asound.conf
    /etc/asound.state
    sono tutti file di configurazione creati un po' da te e un po' a run-time da altri comandi.
Ora passiamo ai file e directory che io CANCELLEREI:
  • le directory

    Codice: Seleziona tutto

    /usr/share/mozilla
    /usr/share/ghostscript/8.70
    /usr/share/ghostscript/8.71
    /usr/doc/kbd-1.15
    /usr/lib/perl5/5.10.0
    /usr/lib/perl5/5.10.1
    /etc/rc.d/rc.modules-2.6.29.6
    /etc/rc.d/rc.modules-2.6.29.6-smp
    /etc/rc.d/rc.modules-2.6.33.4
    /etc/rc.d/rc.modules-2.6.33.4-smp
    /etc/modprobe.conf.obsolete
    /etc/sysstat/sysstat.obsolete.use.etc.rc.d.rc.sysstat
    /etc/dhcpc
    sono tutta sporcizia lasciata da vecchi pacchetti o oltro.
  • Questi file:

    Codice: Seleziona tutto

    /lib/libnss_nisplus-2.9.so
    /lib/libc-2.11.1.so
    /lib/libcidn-2.9.so
    /lib/libanl-2.9.so
    /lib/libBrokenLocale-2.11.1.so
    /lib/librt-2.9.so
    /lib/libdl-2.9.so
    /lib/ld-2.11.1.so
    /lib/ld-2.9.so
    /lib/libutil-2.11.1.so
    /lib/libnsl-2.11.1.so
    /lib/libnsl-2.9.so
    /lib/libBrokenLocale-2.9.so
    /lib/libnss_dns-2.11.1.so
    /lib/libpthread-2.9.so
    /lib/libnss_hesiod-2.11.1.so
    /lib/libcrypt-2.11.1.so
    /lib/libdl-2.11.1.so
    /lib/libpthread-2.11.1.so
    /lib/libnss_nis-2.9.so
    /lib/libnss_nisplus-2.11.1.so
    /lib/libresolv-2.11.1.so
    /lib/libc-2.9.so
    /lib/libm-2.9.so
    /lib/libnss_files-2.11.1.so
    /lib/librt-2.11.1.so
    /lib/libm-2.11.1.so
    /lib/libnss_files-2.9.so
    /lib/libresolv-2.9.so
    /lib/libnss_dns-2.9.so
    /lib/libcidn.so.1
    /lib/libanl-2.11.1.so
    /lib/libcrypt-2.9.so
    /lib/libutil-2.9.so
    /lib/libnss_compat-2.9.so
    /lib/libnss_compat-2.11.1.so
    /lib/libnss_hesiod-2.9.so
    /lib/libcidn-2.11.1.so
    /lib/libnss_nis-2.11.1.so
    fanno tutti parte delle glibc. Sulla tua slackware, che dovrebbe essere una 13.37, ci sono le glibc-2.13. Questi file sono stati lasciati lì dai vecchi pacchetti e, se il sistema è aggiornato com'è nel tuo caso, li puoi anche cancellare tutti.
  • Se il sistema ti funziona bene puoi cancellare anche tutti i file di configurazione "vecchi" sotto '/etc/', quelli '.bak'.
  • Anche questa directory:

    Codice: Seleziona tutto

    /usr/X11R6.bak
    non mi sembra possa servire.
  • Tutti i file che finiscono con la '~', sotto '/etc/', così come il file

    Codice: Seleziona tutto

    /etc/#lilo.conf#
    sono file che hai editato e che l'editor ha creato come copia di buckup.
Vediamo ora i file e directory ni, ovvero quelli che io cancellerei, però...

Codice: Seleziona tutto

/usr/lib/mozilla/extensions
/etc/.pwd.lock
/lost+found
Infine tutti i file che spetta a te capire:
  • le sottodirectory di:

    Codice: Seleziona tutto

    /usr/share/apps/kdm/themes/
    saranno i famosi temi che hai scaricato ed installato
  • questi:

    Codice: Seleziona tutto

    /usr/local/bin/JDUpdate
    /usr/local/bin/JDLauncher
    /usr/share/applications/JDownloader-0.desktop
    /usr/share/applications/JDownloader Update-0.desktop
    /usr/share/icons/nuvola/
    /usr/lib/python2.6/site-packages/xf86misc.pyc
    /usr/lib/python2.6/site-packages/PyQt4/
    /usr/lib/pkgconfig/iso-codes.pc
    /usr/lib/pkgconfig/xtrans.pc
    /usr/lib/pkgconfig/shared-desktop-ontologies.pc
    /usr/lib/pkgconfig/lxc.pc
    /usr/lib/pkgconfig/eigen2.pc
    /usr/lib/pkgconfig/m17n-db.pc
    /usr/lib/kde4/kcm_adobe_flash_player.so
    /usr/share/apps/printer-applet/
    /usr/share/apps/guidance-power-manager
    /etc/etc.txt
    /var/cache/packages/
    /var/lib/slackpkg/
    /media/usb
    /usr/share/mplayer/subfont.ttf
    /etc/slackpkg/mirrors
    /etc/modprobe.d/sound.conf
    
    saprai sicuramente tu cosa sono e se ti servono.
  • La directory:

    Codice: Seleziona tutto

    /usr/lib/firefox-3.5.2
    sei sicuro che ti serve, sembra che tu abbia installato quella versione di FF per i fatti tuoi e poi l'hai dimenticata. Sulla Slackware c'è una versione più aggiornata.
  • Tutti i file sotto:

    Codice: Seleziona tutto

    /etc/ssh
    sono delle coppie di chiavi. Ma tu sei sicuro che ti serva un server SSH attivo? altrimenti tutti quei file li puoi eliminare e disabilitare l'avvio del server con:

    Codice: Seleziona tutto

    chmod -x /etc/rc.d/rc.sshd
  • Tutti i certificati sotto:

    Codice: Seleziona tutto

    /etc/ssl/cert
    devi capire tu se ti servono. Se ti può essere di aiuto, io non ne ho nessuno.
  • Directory e file che mi puzzano sono:

    Codice: Seleziona tutto

    /.config
    /.kde
    /etc/.java
    /usr/lib/java/.systemPrefs/com
    /usr/share/apps/kde/.directory
    /usr/share/apps/.directory
    /media/.hal-mtab
    però l'ultimo potrebbe essere stato creato da hald.
  • Sembra che tu avevi installato il pacchetto 'bluez' e che poi lo abbia disinstallato. In questo caso i file segnalati sotto:

    Codice: Seleziona tutto

    /etc/bluetooth/
    così come:

    Codice: Seleziona tutto

    /etc/rc.d/rc.bluetooth.conf
    puoi anche eliminarli.
  • Se hai il pacchetto blueman, allora la directory:

    Codice: Seleziona tutto

    /var/lib/blueman
    deve restare, altrimenti la puoi eliminare.
  • Questi comandi:

    Codice: Seleziona tutto

    /usr/bin/ubnsylnx
    /usr/bin/ubnexlnx
    /usr/bin/htmlview
    secondo me sono vecchi comandi e se non sai a cosa servono probabilmente li puoi eliminare.
  • Se usi cupsd (per la stampante), allora questi file:

    Codice: Seleziona tutto

    /etc/cups/mime.types
    /etc/cups/mime.convs
    possono restare, altrimenti li puoi eliminare (così come il pacchetto cups). Ma credo ti servano.
  • Su queste directory non so che dirti:

    Codice: Seleziona tutto

    /var/lib/kdm
    /var/lib/rpm/Packages
  • Il file

    Codice: Seleziona tutto

    /usr/share/applications/mimeinfo.cache
    è probabile che abbia un suo senso. Però se lo elimini normalmente non fai danni. Dovrebbe essere ricreato a run-time dal programma che lo usa.
  • I file

    Codice: Seleziona tutto

    /var/tmp/elvis1.ses
    /var/tmp/elvis2.ses
    /var/tmp/elvis3.ses
    /var/tmp/elvis4.ses
    probabilmente li puoi eliminare.
  • I file sotto:

    Codice: Seleziona tutto

    /usr/share/hplip/
    vedi un po' tu. Forse sono stati creati da 'hplip' o forse no.
Note di carattere generale.
  • I file sotto:

    Codice: Seleziona tutto

    /var/run
    sono file creati dai processi attivi. Qui ti devi chiedere se abbia senso e no che tutti quei processi siano attivi.
  • I file sotto:

    Codice: Seleziona tutto

    /var/spool
    sono anchessi file creati dai processi attivi. In particolare, quelli che ti rileva lo script sono i file di 'sendmail' e di 'crond'. Sei sicuro che ti servano questi due demoni attivi? Altrimenti puoi anche eliminare i relativi pacchetti e le directory:

    Codice: Seleziona tutto

    /var/spool/clientmqueue/
    /var/spool/cron
  • Anche i file sotto:

    Codice: Seleziona tutto

    /var/log
    sono file scritti e creati dai processi attivi.
  • I file sotto:

    Codice: Seleziona tutto

    /var/cache
    sono, come dice il nome stesso, delle cache usate dai programmi. A te viene segnalato solo il file:

    Codice: Seleziona tutto

    /var/cache/hald/fdi-cache
    che probabilemente, se hai 'hald'. è normale che ci sia.
  • Tutti i file del tipo:

    Codice: Seleziona tutto

    /var/tmp/kdecache-
    dovrebbero essere i file di cache creati da KDE. Probabilmente questi file hanno senso e sarebbe bene filtrarli dallo script, questa è un ottima segnalazione anche perché a te ce ne sono tantissimi e suppongo ce ne siano sempre tantissimi. Unico consiglio. Elimina la directory:

    Codice: Seleziona tutto

    /var/tmp/kdecache-root
    e non usare più KDE come root.
Per ultimo ho lasciato tutti i file sotto:

Codice: Seleziona tutto

/usr/doc/HTML
alcuni di questi file sembra che facciano parte della Slackware e non dovrebbero essere mostrati dallo script, a meno che tu non abbia fatto qualcosa di strano. Lo script ha evidenziato veramente tantissimi di questi file. Potresti fare questa prova. Dimmi se questo comando ritorna qualcosa:

Codice: Seleziona tutto

grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
Spero che apprezzi lo sforzo! E' più di un'ora che lavoro per te :),
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da Procopio »

esticazzi! :D =D> =D> =D>

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da Procopio »

li ho letti tutti, cancello quelli che secondo te si possono cancellare, qualcuno tra quelli li avevo beccati anch'io...è ovvio che per essere sicuro di cosa faccio, e cancellare tutti i file inutili occorre una conoscenza del sistema, che da me penso trascenderà ancora per un po'..... comunque grazie infinite davvero :)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

Sì, ma fammi anche sapere di questo:
spina ha scritto:...Per ultimo ho lasciato tutti i file sotto:

Codice: Seleziona tutto

/usr/doc/HTML
alcuni di questi file sembra che facciano parte della Slackware e non dovrebbero essere mostrati dallo script, a meno che tu non abbia fatto qualcosa di strano. Lo script ha evidenziato veramente tantissimi di questi file. Potresti fare questa prova. Dimmi se questo comando ritorna qualcosa:

Codice: Seleziona tutto

grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

Procopio ha scritto:...è ovvio che per essere sicuro di cosa faccio, e cancellare tutti i file inutili occorre una conoscenza del sistema, che da me penso trascenderà ancora per un po'...
Queste cose si imparano piano piano man mano che che si ha a che fare con i programmi. Comunque, un altro strumento utile è questo. Ti dice se un file fa parte o meno della Slackware e in quale pacchetto si trova. Se ci sono file che lo script rileva e che non conosci, puoi cercare parte del nome con fMANIFEST. Lui ti dirà in che pacchetto sta e così avrai scoperto una cosa in più :).

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da Procopio »

  • innanzitutto: in generale, per cancellare i file, do un semplice

    Codice: Seleziona tutto

    #rm /nome/del/file
    per ogni file? o si usa un metodo più oculato in genere?
  • i file.bak sotto /etc per il momento li lascio dove sono in caso saltassero fuori dei problemi in futuro
  • JD è un programma che avevo installato io (jdownloader) di lui non tocco niente
  • /usr/lib/firefox-3.5.2 avevo installato la lingua italiana per quella versione, ma in questo caso do un removepkg o elimino a mano la directory?
  • spina ha scritto:I file sotto:

    Codice: Seleziona tutto

    /var/run
    sono file creati dai processi attivi. Qui ti devi chiedere se abbia senso e no che tutti quei processi siano attivi.
    mah no, direi decisamente che non è il caso avere tutti questi processi attivi, ma non li ho attivati tutti io, è che la personalizzazione della mia disto è ancora molto bassa e quindi girano tante cose che non uso e anche di piu :|
  • Unico consiglio. Elimina la directory:

    Codice: Seleziona tutto

    /var/tmp/kdecache-root
    e non usare più KDE come root.
    ook, userò xfce, va bene?
  • spina ha scritto:Per ultimo ho lasciato tutti i file sotto:

    Codice: Seleziona tutto

    /usr/doc/HTML
    alcuni di questi file sembra che facciano parte della Slackware e non dovrebbero essere mostrati dallo script, a meno che tu non abbia fatto qualcosa di strano. Lo script ha evidenziato veramente tantissimi di questi file. Potresti fare questa prova. Dimmi se questo comando ritorna qualcosa:

    Codice: Seleziona tutto

    grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
    eccoti l'out:

    Codice: Seleziona tutto

    matteo@darkstar:~$ grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
    /var/log/packages/amarok-2.4.0-i486-1:usr/share/doc/HTML/pt/amarok/index.cache.bz2


controllo ancora bene certi file di cui non sono certo e di cui non so se ho i pacchetti installati:)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da ZeroUno »

tanti /usr/doc/* li trovi in packages/* o scripts/* come /usr/share/doc/....
readlink -f /usr/share/doc/HTML/sv/skanlite/index.cache.bz2
ls -l /usr/share/doc
/var/log/packages/skanlite-0.7-x86_64-1:usr/share/doc/HTML/sv/skanlite/index.cache.bz2
ls -l /usr/doc/HTML/sv/skanlite/index.cache.bz2
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

Procopio ha scritto:
  • innanzitutto: in generale, per cancellare i file, do un semplice

    Codice: Seleziona tutto

    #rm /nome/del/file
    per ogni file? o si usa un metodo più oculato in genere?
Io uso sempre 'rm'. Guarda che alcune sono directory e quindi vanno eliminate con 'rm -r'.
Procopio ha scritto:[*]/usr/lib/firefox-3.5.2 avevo installato la lingua italiana per quella versione, ma in questo caso do un removepkg o elimino a mano la directory?
Vuoi dire che hai ancora il pacchetto? Normalmente questi file sono esterni ai pacchetti. Se hai il pacchetto fammelo sapere.
Procopio ha scritto:[*]
Unico consiglio. Elimina la directory:

Codice: Seleziona tutto

/var/tmp/kdecache-root
e non usare più KDE come root.
ook, userò xfce, va bene?
Non ti ho detto di non usare KDE, ma di non usarlo come root. L'utente root non dovrebbe mai usare un DE, lui dovrebbe solo occuparsi dell'amministrazione: configura, installa, rimuove.
Procopio ha scritto:[*]
spina ha scritto:Per ultimo ho lasciato tutti i file sotto:

Codice: Seleziona tutto

/usr/doc/HTML
alcuni di questi file sembra che facciano parte della Slackware e non dovrebbero essere mostrati dallo script, a meno che tu non abbia fatto qualcosa di strano. Lo script ha evidenziato veramente tantissimi di questi file. Potresti fare questa prova. Dimmi se questo comando ritorna qualcosa:

Codice: Seleziona tutto

grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
eccoti l'out:

Codice: Seleziona tutto

matteo@darkstar:~$ grep 'pt/amarok/index.cache.bz2' /var/log/packages/*
/var/log/packages/amarok-2.4.0-i486-1:usr/share/doc/HTML/pt/amarok/index.cache.bz2
[/list]
Tutti i file sotto /usr/doc/HTML sono da considerarsi contenuti nei pacchetti, quindi evita di cancellarli (anche se non credo ti servano). Questa è un'altra limitazione dello script che pensavo non valesse la pena di affrontare. In pratica nel pacchetto i file sono installati sotto:

Codice: Seleziona tutto

/usr/share/doc
ma, dato questo non è altro che un link a

Codice: Seleziona tutto

/usr/doc
i file effettivamente sono sotto quest'ultima directory. Questo vuol dire che lo script va a cercare '/usr/doc/nomefile' ma non lo trova in nessun pacchetto perché nei pacchetti c'è invece '/usr/share/doc/nomefile'.

Fammi sapere la storia di firefox che poi se trovo un modo per andare oltre a questo tipo di limitazioni mi servirai da cavia. Intanto non eliminare i file sotto /usr/share/doc/HTML. Magari se vuoi rieseguire lo script per vedere i risultati delle modifiche, filtra anche questa directory. Ovvero, per ora, puoi aggiungere tranquillamente anche queste entry nel file di filtro:

Codice: Seleziona tutto

/usr/doc/HTML
/var/tmp/kdecache-*
così l'output sarà moooolto più piccolo.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

ZeroUno ha scritto:tanti /usr/doc/* li trovi in packages/* o scripts/* come /usr/share/doc/....
readlink -f /usr/share/doc/HTML/sv/skanlite/index.cache.bz2
ls -l /usr/share/doc
/var/log/packages/skanlite-0.7-x86_64-1:usr/share/doc/HTML/sv/skanlite/index.cache.bz2
ls -l /usr/doc/HTML/sv/skanlite/index.cache.bz2
Hai postato mentre rispondevo a Procopio. Hai idea di come fare per aggiustare questo bug? Io pensavo che i pacchetti ufficiali mettessero tutto sotto /usr/doc e non sotto /usr/share/doc. In effetti però sembra che non sia così, e sembra che non sia così per molti pacchetti di KDE.

Pensiamoci, io per ora avevo sorvolato il problema, ma mi sa che sarebbe meglio sistemare la cosa,
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da ZeroUno »

Sinceramente devo ammettere che non ho scaricato lo script, ma immagino riga per riga il codice ;-) (tra l'altro me ne ero fatto uno abbozzato pure io).

Comunque per le directory e i casi noti come usr/share/doc puoi fare in modo che venga eliminato il /share/ da tutti i packages/*
cat /var/log/packages/*|sed 's#^usr/share/doc#usr/doc#'|sort -u >/tmp/elencoslak
e poi greppi dentro elenco slak.

Anzi, mi è venuta una idea su come si possa accellerare lo script (quanto ti ci mette per elaborare tutto?), per cui adesso me lo scarico (anzi, fra qualche ora visto che ora spengo il computer se non voglio perdere il treno ;-) ) e poi ti dico.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da ZeroUno »

no, questo no

Codice: Seleziona tutto

for file in $(<file_list);
do
    if ! grep -m 1 -q "^${file#/}\(\.new\)\?/\?$" /var/log/packages/* && ! grep -m 1 -q "^${file#/}$" other_files
    then
        echo $file
    fi
done
perchè ti vuoi del male!..., anzi, perchè vuoi del male ai processori!!!???
semmai vuoi confrontare file per file
if ! cat /var/log/packages/* other_files |grep ....
...

oppure se proprio vuoi andare di grep
cat /var/log/packages/* other_files|sed 's/^/\//' > slack_files
grep -f slack_files file_list
(o il contrario con -v e/o qualcos'altro)

ma ottieni ancora complessità computazionale N^2

risultati lineari li trovi con diff
sort -u slack_files > slack_files.sort
sort -u file_list > file_list.sort
diff slack_files.sort file_list.sort

100.000 volte più veloce.

# wc -l file_list
598922 file_list

# cat /var/log/packages/* other_files |wc -l
402115

mi aspetto un output di c.a. 200000 file.
in mezzora di esecuzione sono a 36000 (e sto cuocendo il processore).
Lo fermo quì.
la diff mi ci ha messo circa un secondo ;-) (ed ho sia i file di troppo che i file mancanti). La sort 3 secondi. Il collo di bottiglia è solo nella find.

Interessante aggiunta da mettere potrebbe essere che se in una alberatura di directory non c'è neanche un file di slackware, allora mi venga mostrata solamente la directory.
Per esempio, un pacchetto installato dai sorgenti con il make install classico, e --prefix=/opt/programma. Se questo pacchetto ha 10000 file, è molto più utile che mi venga mostrata solo la directory /opt/programma.
Se la cosa funziona bene non servirebbe neanche mettere la /root come eccezione. Semplicemente ti direbbe "dentro /root ci sono file".
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: find_external_SlackPkg_files.sh: uno script per maniaci

Messaggio da targzeta »

Oh Matteo. Mi fa piacere che hai spulciato il codice, con uno come te si può andare sul sicuro.

Detto questo, anche io ero spinto verso una soluzione di tipo sort + comm (più che diff). Prima ti posto le mie statistiche:

Codice: Seleziona tutto

109618 file_list
   5333 other_files
 114951 totale

tempo della find:
real    0m24.796s
user    0m1.080s
sys     0m0.940s

tempo for:
real    17m24.731s
user    2m37.470s
sys     2m52.310s
(il consumo di CPU era sempre sul 60%, quasi meno di quando scrivo qui su Slacky a causa del problema di FF con le gif animate). Ho provato a fare delle sort ed effettivamente non credevo che ordinare più di 100.000 fosse un'operazione così rapida. Quindi facciamo un bel cambiamento all'algoritmo. Però ci sono dei però:
  • come hai visto i pattern di ricerca non sono semplici, per ogni file cerco anche il relativo '.new' oppure uno '/' finale (find non termina le directory con gli slash).
  • bisogna sempre risolvere il problema con i link simbolici
  • per fare l'aggiunta che suggerisci serve un analisi posteriore.
Il problema più grande è proprio quello della corrispondenza 1:1 che esige 'comm'. Questo vuol dire che, secondo me, bisognerebbe fare quanto segue:
  • un'analisi primaria dei file sotto /var/log/packages per:
    • eliminare le entry inutili, vedi le prime righe e le entry install/.
    • aggiungere, per ogni file '.new', il relativo file senza '.new'
    • aggiustare i link simbolici (ti spiega più giù l'idea)
  • ordinare i due file ed eseguire 'comm'
  • eventualmente fare un'analisi post-processo per troncare il contenuto che suggerivi tu, magari mettendo un '/' finale al nome della directory così da rendere immediata l'individuazione.
Un processo di questo tipo mi evita anche il problema con le RE per i comandi tipo '['.

Per i link simbolici: più che fare delle soluzioni specifiche per i link noti, secondo me si possono analizzare i link simbolici creati dal pacchetto aaa_base, lì si trovano tutti i link canonici.

Tu come la vedi? Secondo me è meglio portare avanti questo script e farlo bene piuttosto che avere ognuno il suo con le proprie carenze.

Emanuele

P.S. Inoltre, tra i file da aggiungere io ci metterei anche tutti quelli copiati o spostati dai doinst.sh e non solo i link simbolici creati, che dici?
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Rispondi