Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
LLVM - это инфраструктура компилятора с открытым исходным кодом. LLVM был запущен в 2000 году и широко использовался и модифицировался Apple с 2005 года. Clang - это компилятор C, C ++, Objective-C и Objective-C ++, который работает с системой LLVM. Clang был запущен Apple в 2007 году, и с тех пор Google и Intel стали участвовать в его дальнейшем развитии.
Разработчики Clang утверждают, что по сравнению с GCC он компилируется быстрее, использует меньше памяти, обеспечивает более удобную диагностику во время компиляции и совместим с GCC.
CentOS следует за разработкой Red Hat Enterprise Linux (RHEL). RHEL стремится быть стабильной серверной платформой, что означает, что он не спешит включать последние версии всего.
На момент написания этой статьи CentOS 6 официально распространял LLVM & Clang v3.4.2. Тем не менее, Clang v3.6 был выпущен.
Официальное предложение: если вам нужна более свежая версия LLVM & Clang, вы должны рассмотреть другой дистрибутив UNIX, который больше ориентирован на поддержку последних версий пакетов программного обеспечения.
К счастью, вы можете установить более новую версию LLVM & Clang GCC на CentOS. Это отличается от использования официально распространяемого программного обеспечения, но иногда вы можете чувствовать, что у вас мало выбора.
В этой статье описывается, как установить официально поддерживаемую версию CentOS 6 LLVM & Clang и как установить более новую версию. В этой статье предполагается, что у вас есть недавно установленный CentOS 6 VPS, однако вы, безусловно, можете следовать инструкциям на VPS, который вы уже использовали.
Clang в основном не зависит от GCC, но на момент написания этой статьи, Clang еще использует несколько разделяемых библиотек , установленные НКУ (а именно crtbegin.o
, gcc
и gcc_s
). Если вы установите LLVM & Clang в CentOS 6, вы ничего не сможете скомпилировать, если в вашей системе также нет GCC для этих общих библиотек. В идеале yum должен иметь пакетную зависимость для clang из gcc и gcc-c ++, но на момент написания этой статьи yum не знал о зависимости.
Кроме того, для сборки более новой версии LLVM & Clang из исходного кода требуется G ++ v4.7 +, который можно получить только в CentOS 6, установив его по исходному тексту.
Если вы выполните все приведенные ниже шаги, вы получите 2 версии GCC и 2 версии LLVM & Clang. Это включает официально поддерживаемую бинарную старую версию и более новую версию из исходного кода для каждой программы. Тем не менее, нет необходимости выполнять все шаги ниже. Вы можете решить, хотите ли вы использовать официально поддерживаемую бинарную старую версию LLVM & Clang или более новую версию из исходного кода, и запускать ту часть инструкций, которая соответствует вашему решению.
ВАЖНЫЙ! Во-первых, установите официально поддерживаемую (более старую) версию GCC, выполнив шаги, описанные в статье Как установить GCC на CentOS 6 - вам НЕ нужно выполнять шаги под заголовком этой статьи «Установить более новую версию GCC из исходного кода». ».
Установить LLVM & Clang
sudo yum install clang
--- This will bring in llvm as a dependency
Проверьте установленные версии и посмотрите их расположение.
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++
Чтобы собрать LLVM & Clang по источнику в CentOS, вы должны иметь GCC v4.7 или выше. CentOS 6 не имеет такого высокого уровня версии в yum, поэтому сначала нужно установить более свежую версию GCC из исходных текстов.
ВАЖНЫЙ! Во-первых, установите более новую версию GCC из исходного кода, выполнив шаги, описанные в статье Как установить GCC на CentOS 6, - вам НЕОБХОДИМО выполнить все действия, описанные в этой статье, в том числе под заголовком «Установить более новую версию GCC из источник".
Установите дополнительно необходимые пакеты.
sudo yum install cmake
Установите более новую версию Python. LLVM & Clang v3.6.0 требует Python v2.7 +, но в репозитории CentOS 6 yum есть только 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
Решите, какую версию LLVM & Clang вы хотите. Эта команда покажет вам «теги» для доступных версий.
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/
Получите исходный код нужной вам версии LLVM & Clang. Это будет длиться несколько минут. Остальная часть этой статьи написана для RELEASE_360/
и будет загружать источники в ~/sourceInstallations/llvm_RELEASE_360/
- Вам придется заменить соответствующий тег для соответствия будущим версиям. Приведенные ниже каталоги compiler-rt
, libcxx
и libcxxabi
не являются абсолютно необходимыми, но содержат некоторые функции, которые есть у LLVM & Clang, которых нет у GCC, поэтому они включены в эту статью. Есть и другие «подпроекты» LLVM, которые вы можете использовать, такие как dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode и lld. Вы можете прочитать о них на веб-сайте 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.
Сборка LLVM & Clang. Это будет работать некоторое время. Если это завершится правильно, последняя строка, которую вы увидите, будет говорить «успех». Это нормально, когда некоторые сообщения с ошибками прокручиваются быстро. Всегда полезно создавать вещи в другом каталоге, чем исходный каталог.
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.
Проверьте установленные версии и посмотрите их расположение.
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++
Добавьте новые библиотеки в ld (компоновщик 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.
При желании можно создать программу «Здравствуй, мир».
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!
Используйте LLVM & Clang, когда хотите.
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.
По желанию освободить место на жестком диске. Ваша ~/sourceInstallations
папка будет занимать около 11 ГБ дискового пространства. Вероятно, целесообразно сохранить папки, так как есть дополнительные опции конфигурации, которые вам, возможно, понадобится использовать в будущем, и было бы быстрее, если бы многое уже было сделано. И, как упоминалось выше, есть дополнительные «подпроекты», которые вы можете добавить в LLVM & Clang. Кроме того, процесс сборки создает журналы, которые вы можете позже проверить и работать, если что-то пойдет не так. Но после запуска «sudo make install» ранее установленный LLVM & Clang не зависит от чего-либо в этом каталоге, и пространство может быть слишком дорогим, поэтому вы можете сделать этот шаг и освободить 11 ГБ.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Теперь у вас есть более новая версия LLVM & Clang /usr/local/bin
, более новые 64-битные библиотеки LLVM & Clang /usr/local/lib
и более новые включаемые файлы LLVM & Clang /usr/local/include
.
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше