Aggiornamento di ClamAV di Apple su 10.7 (Lion)
La seguente ricetta di aggiornamento richiede "Xcode" e "Xcode Command Line Tools" per creare software dal suo codice sorgente. I comandi Terminal.app qui sotto sono testati con Mac OS X 10.9.5, Xcode 6.2 in una shell zsh. Per i dettagli sul motivo per cui sono state fatte diverse scelte, vedere la sezione "Sfondo" in basso.
Build pcre 8.39
$ cd ~
$ mkdir src
$ cd /tmp && curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz && cd -
$ cd src
$ tar zxf /tmp/pcre-8.39.tar.gz && rm /tmp/pcre-8.39.tar.gz
$ cd pcre-8.39
$ ./configure --prefix=/usr/local/pcre
$ make && make check
$ make install DESTDIR=/tmp/pcre
$ rm -r /tmp/pcre/usr/local/pcre/share #remove docs
$ tar czvf ~/pcre-8.39.tgz -C /tmp/pcre --exclude=.DS_Store usr/
Crea clamav per sovrascrivere la versione integrata di Mac OS X
$ cd ~/src
$ cd /tmp && curl -LO https://www.clamav.net/downloads/production/clamav-0.99.2.tar.gz && cd -
$ tar zxf /tmp/clamav-0.99.2.tar.gz && rm /tmp/clamav-0.99.2.tar.gz
$ cd clamav-0.99.2
Senza -mmacosx-version-min=10.X
ClamAV 0.99.2 verrà creato con ottimizzazioni del codice del compilatore eseguite sulla versione OS X dell'host (10.9), ma non funziona su 10.6 e 10.7.
Nel caso non si stia costruendo per l'esecuzione su 10.6.8 o 10.7.5, potrebbe essere necessario modificare 10.8.0
o 11.4.2
con l'output del comando uname -r
eseguito sul proprio host Mac (remoto).
10.6.8
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" ./configure --prefix=/usr --libdir=/usr/lib --with-pcre=/usr/local/pcre --enable-llvm --build=x86_64-apple-darwin'uname -r' --host=x86_64-apple-darwin10.8.0 --sysconfdir=/private/etc
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" make
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" sudo make install DESTDIR=/tmp/clamav-0.99.2 && sudo rm -r /tmp/clamav-0.99.2/{private,usr/include} && sudo chown -R root:wheel /tmp/clamav-0.99.2
$ tar czvf ~/clamav-0.99.2.tgz -C /tmp/clamav-0.99.2 --exclude=.DS_Store usr/
10.7.5
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" ./configure --prefix=/usr --libdir=/usr/lib --with-pcre=/usr/local/pcre --enable-llvm --build=x86_64-apple-darwin'uname -r' --host=x86_64-apple-darwin11.4.2 --sysconfdir=/private/etc
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" make
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" sudo make install DESTDIR=/tmp/clamav-0.99.2 && sudo rm -r /tmp/clamav-0.99.2/{private,usr/include} && sudo chown -R root:wheel /tmp/clamav-0.99.2
$ tar czvf ~/clamav-0.99.2.tgz -C /tmp/clamav-0.99.2 --exclude=.DS_Store usr/
Carica o copia i file .tgz sulla macchina 10.7 remota
SSH deve essere abilitato sull'host remoto (di ricezione) affinché questi comandi di esempio funzionino.
$ scp ~/pcre-8.39.tgz remote.host.tld:/tmp/
$ scp ~/clamav-0.99.2.tgz remote.host.tld:/tmp/
Puoi anche caricare i file .tgz su un server web e scaricarli sui computer host remoti, ad esempio con questo comando:
$ cd /tmp && curl -O http://crashplan.probackup.nl/install/mac/pcre-8.39.tgz && cd -
$ cd /tmp && curl -O http://crashplan.probackup.nl/install/mac/clamav-0.99.2.tgz && cd -
Installa pcre 8.39 su Mac host remoto su / usr / local / pcre
$ sudo tar zxvf /tmp/pcre-8.39.tgz -C /
Possibilità di creare collegamenti ai file eseguibili di pcre in / usr / local / bin
$ cd /usr/local/bin && sudo ln -s ../pcre/usr/local/pcre/bin/{pcre-config,pcregrep,pcretest} . && cd -
Installa ClamAV 0.99.2 sull'host Mac remoto
$ sudo tar zxvf /tmp/clamav-0.99.2.tgz -C /
Aggiorna clamd sandbox configuration (per 10.7)
$ sudo sed -i '' 's#(lib|share)#(lib|share|local/pcre/lib)#' /usr/share/sandbox/clamd.sb
$ grep -q -F '(regex #"^/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent$")' /usr/share/sandbox/clamd.sb || { awk '/\(regex #"\^\/private\/var\/clamav\/"\)/ {print "\t(regex #\"^/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent\$\")"}; {print}' /usr/share/sandbox/clamd.sb > ~/temp-clamd.sb; cat ~/temp-clamd.sb | sudo tee /usr/share/sandbox/clamd.sb > /dev/null; rm ~/temp-clamd.sb; };
Avvia daemon freshclam
$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.freshclam.plist
Verifica se freshclam sta aggiornando
$ tail -f /private/var/log/freshclam.log
Premi Ctrl + C per interrompere la visualizzazione della "coda" del file di registro.
Oppure controlla la versione del database nell'eseguibile clamd
:
$ clamd --version
ClamAV 0.99.2/22442/Thu Oct 27 20:03:54 2016
Avvia clamd daemon
$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.clamd.plist
Pulisci i file di archivio del programma di installazione
$ rm /tmp/pcre-8.39.tgz
$ rm /tmp/clamav-0.99.2.tgz
Questo è tutto.
Sfondo
Sovrascrivi il clamav di Apple
Poiché la versione 0.97 di Mac OS X 10.7 ClamAV è così obsoleta da infrangere il sistema, penso che sia saggio sovrascrivere il ClamAV integrato con una versione più recente. Normalmente questo non è raccomandato perché gli aggiornamenti di Apple sovrascriverebbero tale cambiamento. L'ultimo "aggiornamento software" per 10.7 pubblicato da Apple risale a settembre 2012 24 settembre 2014. Per questo motivo non mi aspetto che Apple rilascerà alcun aggiornamento software per Lion, mai.
pcre
La versione corrente (ottobre 2016) di ClamAV è 0.99.2. Quella release di clamav ha una dipendenza chiamata " pcre " che non era richiesta per eseguire la versione clamav corrente fallita 0.97. Pertanto, è necessario installare anche alcuni nuovi software necessari. Non sono sicuro di dove sia meglio installarlo in posizione / usr o / usr / local. Per essere uno il lato più sicuro scelgo di non cambiare il software di sistema in / usr, quindi utilizzare la cartella / usr / local / pcre.
Seperate built and release machines
Per l'open source è abbastanza comune creare e installare il software dal sorgente sullo stesso computer. Poiché il server che esegue clamav obsoleti è un server di produzione, non mi pesa. La compilazione / costruzione del software viene eseguita su un diverso Mac box.
Saluti
Per quanto riguarda la Wildcard per l'aiuto nella creazione di comando awk per inserisci una nuova riga preceduta dal carattere di tabulazione in clamd.sb .