Actualizando el ClamAV de Apple en 10.7 (Lion)
La receta de actualización a continuación requiere "Xcode" y "Xcode Command Line Tools" para compilar software a partir de su código fuente. Los siguientes comandos de Terminal.app se prueban con Mac OS X 10.9.5, Xcode 6.2 en un shell zsh. Para obtener más información sobre por qué se hicieron varias elecciones, consulte la sección "Fondo" en la parte inferior.
Construir 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/
Cree clamav para sobrescribir la versión incorporada de 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
Sin -mmacosx-version-min=10.X
ClamAV 0.99.2 se construirá con optimizaciones de código del compilador que sí se ejecutan en la versión OS X del host (10.9), pero no funcionan en 10.6 y 10.7.
En caso de que no esté compilando para ejecutarse en 10.6.8 o 10.7.5, es posible que necesite cambiar 10.8.0
o 11.4.2
a la salida del comando uname -r
ejecutado en su Mac host (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/
Cargue o copie los archivos .tgz a la máquina remota 10.7
SSH debe estar habilitado en el host remoto (receptor) para que funcionen estos comandos de ejemplo.
$ scp ~/pcre-8.39.tgz remote.host.tld:/tmp/
$ scp ~/clamav-0.99.2.tgz remote.host.tld:/tmp/
También puede cargar los archivos .tgz en un servidor web y descargarlos en las máquinas host remotas, por ejemplo con este 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 -
Instale pcre 8.39 en el host remoto Mac en / usr / local / pcre
$ sudo tar zxvf /tmp/pcre-8.39.tgz -C /
Opcionalmente cree enlaces a ejecutables de pcre en / usr / local / bin
$ cd /usr/local/bin && sudo ln -s ../pcre/usr/local/pcre/bin/{pcre-config,pcregrep,pcretest} . && cd -
Instale ClamAV 0.99.2 en el host remoto Mac
$ sudo tar zxvf /tmp/clamav-0.99.2.tgz -C /
Actualizar la configuración de la caja de arena de la almeja (para 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; };
Iniciar el demonio freshclam
$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.freshclam.plist
Ver si freshclam se está actualizando
$ tail -f /private/var/log/freshclam.log
Presione Ctrl + C para de dejar de mostrar la "cola" del archivo de registro.
O verifique la versión de la base de datos en el ejecutable clamd
:
$ clamd --version
ClamAV 0.99.2/22442/Thu Oct 27 20:03:54 2016
Iniciar el demonio clamd
$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.clamd.plist
Archivos de archivo del instalador de limpieza
$ rm /tmp/pcre-8.39.tgz
$ rm /tmp/clamav-0.99.2.tgz
Eso es todo.
Fondo
Sobrescribe el clamav de Apple
Debido a que la versión 0.97 ClamAV de Mac OS X 10.7 está tan desactualizada que rompe el sistema, creo que es conveniente sobrescribir la versión integrada de ClamAV con una versión más reciente. Normalmente esto no se recomienda porque las actualizaciones de Apple sobrescribirían tal cambio. La última "Actualización de software" para 10.7 que lanzó Apple se remonta a September 2012 , 24 de septiembre de 2014. Por esa razón, no espero que Apple lance ninguna actualización de software para Lion, nunca.
pcre
La versión actual (octubre de 2016) de ClamAV es 0.99.2. Esa versión de clamav tiene una dependencia llamada " pcre " que no era necesaria para ejecutar la versión actual de clamav 0.97. Por lo tanto, también es necesario instalar algún software recientemente requerido. No estoy seguro de dónde es mejor instalar eso en la ubicación / usr o / usr / local. Para ser uno de los más seguros, elijo no cambiar el software del sistema en / usr, por lo tanto, uso la carpeta / usr / local / pcre.
Separa las máquinas construidas y liberadas
Para el código abierto es bastante común compilar e instalar el software desde el origen en la misma máquina. Debido a que el servidor que ejecuta clamav obsoleto es un servidor de producción, no me meto con él. La compilación / creación de software se realiza en un cuadro de Mac diferente.
Saludos
Con respecto a Wildcard para obtener ayuda para crear comando awk para inserte una nueva línea precedida con el carácter de tabulación en clamd.sb .