CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
LLVMはオープンソースのコンパイラインフラストラクチャです。LLVMは2000年に開始され、2005年以来Appleによって広く使用および変更されています。Clangは、LLVMシステムで動作するC、C ++、Objective-C、およびObjective-C ++コンパイラです。Clangは2007年にAppleによって設立され、それ以来、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ディストリビューションを検討する必要があります。
さいわい、CentOSに最新バージョンのLLVMとClang GCCをインストールできます。これは、正式に配布されたソフトウェアを純粋に使用することから逸脱していますが、選択肢が少ないように感じる場合があります。
この記事では、LLVMとClangのCentOS 6公式サポートバージョンをインストールする方法と、新しいバージョンをインストールする方法について説明します。この記事では、新しくインストールされたCentOS 6 VPSがあることを前提としていますが、すでに使用しているVPSの指示に従うこともできます。
クランはGCCからほぼ独立しているが、この記事の執筆時点で、クランはまだ(すなわち、GCCによってインストールされたいくつかの共有ライブラリを使用してcrtbegin.o
、gcc
とgcc_s
)。CentOS 6にLLVMとClangをインストールする場合、これらの共有ライブラリ用のGCCがシステムにない場合は、何もコンパイルできません。理想的には、yumはgccおよびgcc-c ++のclangのパッケージ依存関係を持つことになりますが、この記事の執筆時点では、yumは依存関係を認識していません。
さらに、ソースから新しいバージョンのLLVMとClangをビルドするには、G ++ v4.7 +が必要です。これは、CentOS 6で入手するには、ソース別にインストールする必要があります。
以下のすべての手順を実行すると、GCCの2つのバージョンとLLVMとClangの2つのバージョンが必要になります。これには、公式にサポートされているバイナリの古いバージョンと、各プログラムのソースからの新しいバージョンが含まれます。ただし、以下のすべての手順を実行する必要はありません。公式にサポートされているバイナリの古いバージョンのLLVMとClangを使用するか、ソースからの新しいバージョンを使用するかを決定し、その決定に適合する手順のセクションを実行できます。
重要! まず、CentOS 6にGCCをインストールする方法の手順を実行して、正式にサポートされている(古い)バージョンのGCC をインストールします。この記事の見出し「ソースから新しいバージョンの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++
CentOSでソースごとにLLVMとClangをビルドするには、GCC v4.7以降が必要です。CentOS 6のyumにはこれほど高いバージョンがないため、最初にソースから最新のGCCをインストールする必要があります。
重要! まず、資料の手順を実行することにより、ソースからGCCの新しいバージョンをインストールCentOSの6上でGCCをインストールする方法 -あなたが見出しの下を含め、その記事内のすべてのステップを実行する必要がDO「から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&クランは、GCCは、ので、この記事に含まれていないことを持っていることをいくつかの機能が含まれています。dragonegg、LLDB、OpenMB、vmkit、polly、libclc、klee、SAFECode、lldなど、使用できる他のLLVM「サブプロジェクト」があります。これらについては、LLVM Webサイトで読むことができます。
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.
オプションで「hello world」プログラムを作成します。
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はこのディレクトリの何にも依存せず、スペースが貴重になる可能性があるため、この手順を実行して11GBを再利用できます。
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
。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。