Configure sua própria rede privada com o OpenVPN
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
O LLVM é uma infraestrutura de compilador de código aberto. O LLVM foi iniciado em 2000 e tem sido amplamente utilizado e modificado pela Apple desde 2005. Clang é um compilador C, C ++, Objective-C e Objective-C ++ que funciona com o sistema LLVM. O Clang foi iniciado em 2007 pela Apple e, desde então, o Google e a Intel se envolveram em seu desenvolvimento contínuo.
Os desenvolvedores de Clang afirmam que, comparado ao GCC, ele compila mais rapidamente, usa menos memória, fornece diagnósticos mais amigáveis ao usuário durante a compilação e é compatível com o GCC.
O CentOS segue o desenvolvimento do Red Hat Enterprise Linux (RHEL). O RHEL se esforça para ser uma plataforma de servidor estável, o que significa que não se apressa em incluir as versões mais recentes de tudo.
No momento da redação deste artigo, o CentOS 6 distribui oficialmente o LLVM & Clang v3.4.2. No entanto, o Clang v3.6 foi lançado.
A sugestão oficial é que, se você precisar de uma versão mais recente do LLVM & Clang, considere uma distribuição UNIX diferente, mais focada no suporte às versões mais recentes dos pacotes de software.
Felizmente, você pode instalar uma versão mais recente do LLVM & Clang GCC no CentOS. Isso se desvia do uso puramente do software distribuído oficialmente, mas às vezes você pode sentir que tem pouca escolha.
Este artigo descreve como instalar a versão oficialmente suportada pelo CentOS 6 do LLVM & Clang e como instalar uma versão mais recente. Este artigo pressupõe que você tenha um CentOS 6 VPS instalado recentemente, no entanto, certamente você pode seguir as instruções em um VPS que você já está usando.
Clang é em grande parte independente do GCC, mas a partir da escrita deste artigo, Clang ainda usa várias bibliotecas compartilhadas instalados pelo GCC (ou seja, crtbegin.o
, gcc
, e gcc_s
). Se você instalar o LLVM & Clang no CentOS 6, não poderá compilar nada se também não tiver o GCC no seu sistema para essas bibliotecas compartilhadas. Idealmente, o yum teria uma dependência de pacote para clang do gcc e gcc-c ++, mas, na redação deste artigo, o yum não tem conhecimento da dependência.
Além disso, a criação de uma versão mais recente do LLVM & Clang a partir da fonte requer o G ++ v4.7 +, que você só pode acessar no CentOS 6 instalando-o pela fonte.
Se você executar todas as etapas abaixo, terá duas versões do GCC e duas versões do LLVM & Clang. Isso inclui uma versão mais antiga binária suportada oficialmente e uma versão mais recente da fonte para cada programa. No entanto, não há necessidade de executar todas as etapas abaixo. Você pode decidir se deseja a versão mais antiga binária do LLVM & Clang com suporte oficial ou a versão mais recente da fonte e executar a seção de instruções que melhor se adequar à sua decisão.
IMPORTANTE! Primeiro, instale uma versão (mais antiga) oficialmente suportada do GCC, executando as etapas no artigo Como instalar o GCC no CentOS 6 - NÃO é necessário executar as etapas no cabeçalho desse artigo "Instalar uma versão mais recente do GCC a partir da fonte "
Instale o LLVM & Clang
sudo yum install clang
--- This will bring in llvm as a dependency
Verifique as versões instaladas e veja seus locais.
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 criar o LLVM & Clang por fonte no CentOS, é necessário ter o GCC v4.7 ou superior. O CentOS 6 não possui essa versão alta no yum, portanto, primeiro você precisa instalar um GCC mais recente da fonte.
IMPORTANTE! Primeiro, instale uma versão mais recente do GCC a partir da fonte, executando as etapas no artigo Como instalar o GCC no CentOS 6 - você precisará executar todas as etapas desse artigo, inclusive sob o título "Instalar uma versão mais recente do GCC a partir do código-fonte " fonte".
Instale pacotes adicionais necessários.
sudo yum install cmake
Instale uma versão mais recente do Python. O LLVM & Clang v3.6.0 requer o Python v2.7 +, mas o repositório do CentOS 6 yum possui apenas o 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
Decida qual versão do LLVM e Clang você deseja. Este comando mostra as "tags" para as versões disponíveis.
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/
Obtenha a fonte da versão do LLVM & Clang que você deseja. Isso durará alguns minutos. O restante deste artigo foi escrito RELEASE_360/
e fará o download das fontes para ~/sourceInstallations/llvm_RELEASE_360/
- Você precisará substituir a tag apropriada para caber nas versões futuras. Os diretórios abaixo de compiler-rt
, libcxx
e libcxxabi
não são absolutamente necessários, mas contêm algumas das características que LLVM & Clang tem que GCC não, por isso estão incluídas neste artigo. Existem outros "subprojetos" do LLVM que você pode usar, como dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode e lld. Você pode ler sobre aqueles no site da 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.
Crie LLVM e Clang. Isso funcionará por um tempo. Se isso for concluído corretamente, a última linha que você verá dirá "sucesso". É normal ver algumas mensagens de erro rolando rapidamente. É sempre uma boa ideia criar coisas em um diretório diferente do diretório de origem.
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 as versões instaladas e veja seus locais.
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++
Adicione as novas bibliotecas ao ld (o vinculador 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, faça um programa "olá 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 e Clang quando quiser.
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.
Recupere opcionalmente o espaço no disco rígido. Sua ~/sourceInstallations
pasta ocupará cerca de 11 GB de espaço em disco. Provavelmente, é aconselhável manter as pastas, pois há opções de configuração opcionais que você pode precisar usar em algum momento no futuro, e seria mais rápido ter muito já feito. E, como mencionado acima, existem "subprojetos" adicionais que você pode adicionar ao LLVM & Clang. Além disso, o processo de compilação cria logs dos quais você pode verificar e trabalhar posteriormente se algo der errado. Mas, depois de executar o "sudo make install" anteriormente, o LLVM & Clang instalado não depende de nada neste diretório, e o espaço pode ser muito alto, portanto você pode executar esta etapa e recuperar os 11 GB.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Agora você tem seu LLVM & Clang /usr/local/bin
mais recente, suas bibliotecas LLVM & Clang mais recentes de 64 bits /usr/local/lib
e o LLVM & Clang mais recente inclui arquivos /usr/local/include
.
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi
Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim
Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade
Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud
Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens
Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i
Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece
Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.
Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos
Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo
O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi
O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você
Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa
Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece
Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.