Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
LLVM es una infraestructura compiladora de código abierto. LLVM se inició en 2000, y Apple lo ha usado y modificado ampliamente desde 2005. Clang es un compilador C, C ++, Objective-C y Objective-C ++ que funciona con el sistema LLVM. Clang se inició en 2007 por Apple, y desde entonces Google e Intel se han involucrado en su desarrollo continuo.
Los desarrolladores de Clang afirman que, en comparación con GCC, se compila más rápido, usa menos memoria, ofrece diagnósticos más fáciles de usar durante la compilación y es compatible con GCC.
CentOS sigue el desarrollo de Red Hat Enterprise Linux (RHEL). RHEL se esfuerza por ser una plataforma de servidor estable, lo que significa que no se apresura a incluir las últimas versiones de todo.
Al momento de escribir este artículo, CentOS 6 distribuye oficialmente LLVM & Clang v3.4.2. Sin embargo, Clang v3.6 ha sido lanzado.
La sugerencia oficial es que si necesita una versión más reciente de LLVM & Clang, debería considerar una distribución UNIX diferente que esté más enfocada en soportar las últimas versiones de paquetes de software.
Afortunadamente, puede instalar una versión más reciente LLVM & Clang GCC en CentOS. Esto se desvía del uso exclusivo del software distribuido oficialmente, pero a veces puede parecer que tiene pocas opciones.
Este artículo describe cómo instalar la versión oficialmente compatible de CentOS 6 de LLVM & Clang, y cómo instalar una versión más nueva. Este artículo asume que tiene un VPS CentOS 6 recién instalado, sin embargo, ciertamente puede seguir las instrucciones en un VPS que ya ha estado utilizando.
Sonido metálico es en gran medida independiente de GCC, pero a partir de la redacción de este artículo, sonido metálico todavía utiliza varias bibliotecas compartidas instaladas por GCC (a saber, crtbegin.o
, gcc
, y gcc_s
). Si instala LLVM & Clang en CentOS 6, no podrá compilar nada si no tiene GCC en su sistema para estas bibliotecas compartidas. Idealmente, yum tendría una dependencia de paquete para el sonido de gcc y gcc-c ++, pero a partir de la redacción de este artículo, yum desconoce la dependencia.
Además, crear una versión más nueva de LLVM y Clang desde la fuente requiere G ++ v4.7 +, que solo puede obtener en CentOS 6 al instalarlo por fuente.
Si ejecuta todos los pasos a continuación, terminará con 2 versiones de GCC y 2 versiones de LLVM & Clang. Esto incluye una versión anterior binaria oficialmente compatible y una versión más nueva de la fuente para cada programa. Sin embargo, no es necesario ejecutar todos los pasos a continuación. Puede decidir si desea la versión anterior binaria oficialmente admitida de LLVM & Clang, o la versión más reciente de la fuente, y ejecutar la sección de instrucciones que corresponda a su decisión.
¡IMPORTANTE! Primero, instale una versión oficialmente admitida (anterior) de GCC, siguiendo los pasos del artículo Cómo instalar GCC en CentOS 6 ; NO es necesario que realice los pasos bajo el encabezado de ese artículo "Instale una versión más nueva de GCC desde la fuente ".
Instalar LLVM y Clang
sudo yum install clang
--- This will bring in llvm as a dependency
Verifique las versiones instaladas y vea sus ubicaciones.
clang --version
May say: clang version 3.4.2 (tags/RELEASE_34/dot2-final)
which clang
/usr/bin/clang
gcc --version
May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
g++ --version
May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
which gcc
/usr/bin/gcc
which g++
/usr/bin/g++
Para construir LLVM y Clang por fuente en CentOS, debe tener GCC v4.7 o superior. CentOS 6 no tiene una versión tan alta en yum, por lo que primero debe instalar un GCC más reciente desde la fuente.
¡IMPORTANTE! Primero, instale una versión más reciente de GCC desde el código fuente, siguiendo los pasos del artículo Cómo instalar GCC en CentOS 6 : DEBE realizar todos los pasos en ese artículo, incluso bajo el encabezado "Instalar una versión más reciente de GCC desde fuente".
Instalar paquetes adicionales necesarios.
sudo yum install cmake
Instale una versión más nueva de Python. LLVM & Clang v3.6.0 requiere Python v2.7 +, pero el repositorio de CentOS 6 yum solo tiene Python v2.6.6.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -xvf Python-2.7.9.tgz
cd Python-2.7.9
./configure && make && sudo make install
Decide qué versión de LLVM y Clang quieres. Este comando le mostrará las "etiquetas" para las versiones disponibles.
svn ls http://llvm.org/svn/llvm-project/llvm/tags | grep RELEASE
RELEASE_1/
...
RELEASE_352/
RELEASE_360/
RELEASE_361/
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_361
rc1/
--- At this time, there is no final, just a release candidate. You could certainly use a release candidate, but this article will show how to use a final release.
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360
final/
rc1/
rc2/
rc3/
rc4/
Obtenga la fuente de la versión de LLVM & Clang que desee. Esto durará unos minutos. El resto de este artículo está escrito RELEASE_360/
y descargará las fuentes en ~/sourceInstallations/llvm_RELEASE_360/
: tendrá que sustituir la etiqueta adecuada para que se ajuste a futuras versiones. Los directorios a continuación de compiler-rt
, libcxx
y libcxxabi
no son absolutamente necesarios, pero contienen algunas de las características que tiene LLVM y Clang que GCC no tiene, por lo que se incluyen en este artículo. Hay otros "subproyectos" de LLVM que puede elegir usar, como dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode y lld. Puede leer sobre ellos en el sitio web de LLVM .
cd ~/sourceInstallations
svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360/final llvm_RELEASE_360
cd llvm_RELEASE_360/tools
svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/final clang
cd ../projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_360/final compiler-rt
svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_360/final libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_360/final libcxxabi
cd ..
svn update
At revision X.
--- Hopefully this outputs one line saying "At revision X", but numbers instead of "X". If it downloads more source files, a new revision was released while you were downloading the source code. This is highly unlikely unless you're using trunk (the most up to date, maybe unstable code.) But, if this happens, perform a svn update in the tools/clang, projects/compiler-rt, projects/libcxx, projects/libcxxabi, and again ~/sourceInstallations/llvm_RELEASE_360, until you are fully up to date.
Construir LLVM y Clang. Esto se ejecutará por un tiempo. Si esto se completa correctamente, la última línea que verá dirá "éxito". Es normal ver que algunos mensajes con aspecto de error se desplazan rápidamente. Siempre es una buena idea construir cosas en un directorio diferente que un directorio de origen.
mkdir ../llvm_RELEASE_360_build
cd ../llvm_RELEASE_360_build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ../llvm_RELEASE_360 && make && sudo make install && echo success
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
--- If you omit -DCMAKE_BUILD_TYPE=Release, the build defaults to debug. This is great if you need to debug LLVM & Clang itself, but slows down compilation of your end programs considerably.
--- If you omit the references to gcc and g++, it will default to using the older binary versions in /usr/bin/, and will not compile.
Verifique las versiones instaladas y vea sus ubicaciones.
clang --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
clang++ --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
which clang
/usr/local/bin/clang
which clang++
/usr/local/bin/clang++
Agregue las nuevas bibliotecas a ld (el enlazador GNU).
echo "/usr/local/lib" > usrLocalLib.conf
sudo mv usrLocalLib.conf /etc/ld.so.conf.d/
sudo ldconfig
--- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
--- You may ignore this message. It is silent about the work it successfully completed.
Opcionalmente, haga un programa "hola mundo".
mkdir ~/code
cd ~/code
Create a file main.cpp that says:
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}
--- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
clang++ main.cpp -o main
./main
Hello World!
clang++ -stdlib=libc++ -lc++abi main.cpp -o main
--- This uses Clang's libc++ and libc++abi, instead of the GNU stdlibc++ and stdlibc++abi
./main
Hello world!
Use LLVM y Clang cuando lo desee.
You could set LLVM & Clang to be your system's default C and C++ compiler by running:
echo "export CC=/usr/local/bin/gcc" >> ~/.bashrc
echo "export CXX=/usr/local/bin/g++" >> ~/.bashrc
source ~/.bashrc
Once and a while there is a difference between Clang and GCC, but it's becoming more and more rare. To be more conservative, you could specify in your code's buildsystem to use LLVM & Clang, but otherwise leave your system's default to the source build of GCC.
Opcionalmente reclamar espacio en el disco duro. Su ~/sourceInstallations
carpeta ocupará alrededor de 11 GB de espacio en disco. Probablemente sea aconsejable mantener las carpetas, ya que hay opciones de configuración opcionales que puede necesitar usar en algún momento en el futuro, y sería más rápido tener muchas cosas ya hechas. Y, como se mencionó anteriormente, hay "subproyectos" adicionales que puede agregar a LLVM & Clang. Además, el proceso de compilación crea registros que luego puede verificar y trabajar si algo sale mal. Pero, después de ejecutar "sudo make install" anteriormente, su LLVM & Clang instalado no depende de nada en este directorio, y el espacio puede ser escaso, por lo que puede hacer este paso y reclamar los 11 GB.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Ahora tiene su LLVM y Clang más nuevos, sus nuevas bibliotecas LLVM y Clang de /usr/local/bin
64 bits /usr/local/lib
, y sus nuevas LLVM y Clang incluyen archivos /usr/local/include
.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.
Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi
Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin
¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i
¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad
Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t
Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud
¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.
MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i
YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación
Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i
LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a
¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.
¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:
En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar
¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo
ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi
Django es un marco de Python popular para escribir aplicaciones web. Con Django, puede crear aplicaciones más rápido, sin reinventar la rueda. Si tu quieres
ionCube Loader es una extensión PHP que permite que un servidor web ejecute archivos PHP que han sido codificados usando ionCube Encoder y es necesario para ejecutar
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.