Spazio su disco è a buon mercato, ma ci sono ancora situazioni in cui si desideri recuperare spazio. Per me, uno di loro è di ottenere il massimo dell’account gratuito Dropbox posso usare per sincronizzare il mio applicazioni tra lavoro e casa. Ehi, non dire il mio sysadmin faccio questo, che avrei avuto un attacco di cuore e dal pensiero unico di un virus tra la mia collezione di strumenti.
Naturalmente, {zip/rar}ing tutto è un no-go; nessuno vuole aprire un archivio prima di essere in grado di lanciare un’applicazione. Così che cosa?
Inserire UPX, il riferimento packer per i file eseguibili. UPX comprime i file eseguibili (per lo più .exe e .dll in Windows), ma contrariamente a zip/rar/qualunque cosa, e li tiene eseguibile, preservando anche la loro proprietà (icone, versione…). Tutto questo al costo di un impercettibile calo di prestazioni durante l’avvio l’applicazione. Suona bene? Andiamo a comprimere il tutto eseguibile in questo Dropbox che è pericolosamente vicino a raggiungere il limite di 2GB.
- Scarica UPX da SourceForge e lo estrai <upxFolder>.
- Aprire un prompt dei comandi e selezionare <upxFolder> (potete trovare il prompt dei comandi da Start > Accessori o eseguirlo tramite Windows+R, quindi il comando “cmd”. È possibile utilizzare “cd Nomecartella” per navigare il filesystem).
- Eseguire upx.exe per avere uno sguardo alle opzioni disponibili. Io uso -9, ma è possibile modificare questo (per esempio, se ti senti un calo di prestazioni su una macchina vecchia –non–), e-v per avere un output dettagliato. Ora, passare alla cartella di un programma che si desidera comprimere e eseguire il tuo appena sfornato comando:
“<upxFolder>upx.exe” -9 -v *.exe *.dll
(sostituire <upxFolder> adeguatamente, e mantenere le virgolette il percorso, o spazi causare problemi) - Potrai vedere i file compressi, il rapporto di compressione, così come l’occasionale “AlreadyPackedException: già confezionati da UPX”, o “CantPackException: .NET file (win32/net) non sono ancora supportate”, o “IOException: errore di lettura: argomento non Valido”. Questi errori sono tutti OK, UPX appena ti avvisa che il file intatti.
Woot, è già guadagnato 50MB da solo la compressione di grande ol’Inkscape.
Naturalmente si desidera effettuare questa operazione su TUTTI gli eseguibili in una cartella. Ma siete pigri, e la prospettiva di esecuzione di questa linea all’interno di centinaia di sottocartelle foglie è desolante. Fortunato te, io sono pigro, quindi ho scavato Overflow dello Stack per assemblare un script che farà l’operazione in modo ricorsivo.
- Incolla questo in un file di testo (ovviamente la regolazione della linea principale, come abbiamo fatto prima) si rinomina per qualcosa come upxRecursive.bat
per /r /d %%x in ( * ) (
pushd “%%x”
“<upxFolder>upx.exe” -9 -v *.exe *.dll
popd
)
pausa - Spostare questo file batch all’interno della vostra cartella Dropbox, lanciarlo e vedere la magia. Questo richiederà un lungo periodo di tempo in una grande cartella riempito con i file eseguibili, ma seriamente sottile verso il basso. Nel mio caso, ho salvato 400MB (da 1,7 GB di 1.3 GB), lasciando me con un sacco di spazio per più schifo.
Note finali:
- UPX è stato in sviluppo per un lungo periodo di tempo ed è lodato per la sua estrema stabilità e affidabilità, ma potrebbe lasciare con qualche esotico file eseguibili che non verrà eseguito dopo la compressione. Io personalmente non si è mai verificato a me, ma gli incidenti accadono. In questo caso, utilizzare “<upxFolder>upx.exe” -d problematicFile.exe per ottenere una versione non compressa. Nota non sarà di byte uguali, se si vuole essere in grado di tornare a byte-versioni identiche, si dovrebbe aggiungere l’opzione –esatto interruttore a tempo di compressione.
A proposito, la gente a PortableApps.com pack con tutti i software hanno comunicato con UPX. Rassicurati circa la sua affidabilità? - Persone che hanno familiarità con win32/pe formato sapere che .exe e .dll non solo le estensioni valide. L’elenco completo è “.exe .dll .cpl .ocx .sys .scr .drv”. Tuttavia, non si consiglia di comprimere i file sensibili come il pannello di controllo o le estensioni di file del driver, e questo è il motivo per cui la linea suggerisco di obiettivi di solo i file dll e exe. La compressione di VLC è OK perché è possibile reinstallarlo se UPX macellai. La compressione software critici non.
- Sto solo ripetendo il mio punto precedente, ma non voglio vedere commenti arrabbiati da gente che fa cose pazzesche con questo. Di nuovo, non fare questo a tutti C: , e -si – relitto sistema. Comprimere i file eseguibili quando si ha realmente bisogno, e all’interno delle cartelle che contengono solo reinstallable applicazioni se le cose vanno male.
- UPX è multi-piattaforma. Il mio articolo si concentra fortemente su Windows, perché questa è la piattaforma dove il mio caso d’uso viene, ma ovviamente si può regolare questa idea/script per Linux (più si avrà probabilmente avere accesso a una più sana linguaggio di scripting che lotto).
- EDIT: come detto da John T. Haller nei commenti, PortableApps offre AppCompactor, una interfaccia grafica che si basa, tra l’altro, UPX.
Ronan è un geek e musicista che vive a Montreal. Ama spaventare diffidare gli amministratori di sistema con 2GB di cartelle piene di falsi positivi e scrive il software, la musica e la vita in volo granello di sabbia.