Centos7 インストールブースト記録

centos7 Tencent サーバーのインストールに関するメモ

まず、公式 Web サイトの
ダウンロード ページ
を開いて、必要なインストール パッケージを見つけます。ここでは boost_1_78_0.tar.gz リンクを選択しました。右クリックして開くと、リンクをコピーするオプションが表示されます。次に、コマンドを入力してサーバーに圧縮パッケージを取得します

 wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz

ダウンロード後、カレントディレクトリにboost_1_78_0.tar.gzの圧縮パッケージが表示されますので、解凍後、コンパイルしてインストールしてください。
インストール ディレクトリを入力し、次のコマンドを入力します。

./bootstrap.sh; ./b2 --buildtype=complete install

次の結果が得られました

Building B2 engine..

Could not find a suitable toolset.

You can specify the toolset as the argument, i.e.:
    ./build.sh [options] gcc

Toolsets supported by this script are:
    acc, clang, como, gcc, intel-darwin, intel-linux, kcc, kylix, mipspro,
    pathscale, pgi, qcc, sun, sunpro, tru64cxx, vacpp

For any toolset you can override the path to the compiler with the '--cxx'
option. You can also use additional flags for the compiler with the
'--cxxflags' option.

A special toolset; cxx, is available which is used as a fallback when a more
specific toolset is not found and the cxx command is detected. The 'cxx'
toolset will use the '--cxx' and '--cxxflags' options, if present.

Options:
    --help                  Show this help message.
    --verbose               Show messages about what this script is doing.
    --debug                 Build b2 with debug information, and no
                            optimizations.
    --guess-toolset         Print the toolset we can detect for building.
    --cxx=CXX               The compiler exec to use instead of the detected
                            compiler exec.
    --cxxflags=CXXFLAGS     The compiler flags to use in addition to the
                            flags for the detected compiler.



Failed to build B2 build engine

Baidu で得られた結果は、現在の gcc バージョンが間違っているというものでした。確認してください。現在のバージョンは 4.8.5 であり、対応していません。通常は gcc7 バージョンであるはずです。その後、gcc バージョンを切り替え、centos scl を使用して切り替えます。 。

yum install centos-release-scl
yum install scl-utils
yum install devtoolset-7-toolchain#安装gcc7版本

インストールしたらチェックしてみてください

[root@VM-0-17-centos boost_1_78_0]# scl --list
devtoolset-7
[root@VM-0-17-centos boost_1_78_0]# scl enable devtoolset-7 bash
[root@VM-0-17-centos boost_1_78_0]# gcc -v
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)

gcc7 バージョンに切り替えて、再度実行して確認しました。

[root@VM-0-17-centos boost_1_78_0]# ./bootstrap.sh
Building B2 engine..

###
###
### Using 'cxx' toolset.
###
###

cpp (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


###
###

> cpp -DNDEBUG builtins.cpp class.cpp command.cpp compile.cpp constants.cpp cwd.cpp debug.cpp debugger.cpp execcmd.cpp execnt.cpp execunix.cpp filesys.cpp filent.cpp fileunix.cpp frames.cpp function.cpp glob.cpp hash.cpp hcache.cpp hdrmacro.cpp headers.cpp jam_strings.cpp jam.cpp jamgram.cpp lists.cpp make.cpp make1.cpp md5.cpp mem.cpp modules.cpp native.cpp object.cpp option.cpp output.cpp parse.cpp pathnt.cpp pathsys.cpp pathunix.cpp regexp.cpp rules.cpp scan.cpp search.cpp startup.cpp subst.cpp sysinfo.cpp timestamp.cpp variable.cpp w32_getreg.cpp modules/order.cpp modules/path.cpp modules/property-set.cpp modules/regex.cpp modules/sequence.cpp modules/set.cpp -o b2
cpp: fatal error: too many input files
compilation terminated.
> cp b2 bjam
cp: cannot stat ‘b2’: No such file or directory

Failed to build B2 build engine

うーん、やはり失敗、b2インタプリタのコンパイルがうまくいかず、結局問題は解決しなかったので、比較のためにwin11のWSL2にcentos7でboostをインストールしてみます。

win11のCentos7サブシステムのインストール

WSL2 サービスをオンにしたときに、コンピューター上で centos システムを検索したところ、ストアではサポートされておらず、すべて有料だったので、LxRunOffline 経由でのみ修正バージョンの centos を実行できました。

まず第一に、LxRunOffline は WSL 用のサードパーティ ツールです。WSL の欠点を補うために中国の専門家によって開発されました。主に Linux ディストリビューションの WSL 形式を実装できます。強力な管理ツールですが、使用できるファイルは LxRunOffline.exe と LxRunOfflineShellExt.dll の 2 つだけです。

github のダウンロード リンクを入力します(多くの新人研究者は github にアクセスすることに慣れていないかもしれませんが、この強力なコード ホスティング プラットフォームは慣れるのに非常に適しています)。入力後、圧縮パッケージを直接ダウンロードできます。私は LxRunOffline- を選択しました。 v3.5.0 -msvc.zip、バージョン 3.5。
ここに画像の説明を挿入します
ダウンロード後、解凍して LxRunOfflineShellExt.dll と LxRunOffline.exe の 2 つのファイルを取得し、C:\Windows\System32 に配置し、このフォルダーで管理者として cmd ターミナルを開き、次のコマンドを入力して機能の登録を完了します。

regsvr32 LxRunOfflineShellExt.dll

ここで、LxRunOffline がインストールされています。次に、centos7 イメージの修正バージョンも必要です。これも簡単に見つかります。これは、LxRunOffline の gitbub プロジェクトの下の centos ブランチにあります。centos7.8 イメージ
(
インターフェイスで [ダウンロード] をクリックして、画像をダウンロードしてください、誰もが知っているはずです)
ここに画像の説明を挿入します

ダウンロード後、すべて英語のパスに保存する必要があります (チュートリアルにはそう記載されていますが、私は中国語のパスを入れたことはありません。他のソフトウェアをインストールして使用するときに同様の状況を試しました)。その後、次の install コマンドを使用します。 LxRunOffline は次のように:

PS E:\document> LxRunOffline install -n CentOS -f E:\document\centos-7.8.2003-x86_64-docker.tar.xz -d E:\linux\centos7.8
[WARNING] Love this tool? Would you like to make a donation: https://github.com/DDoSolitary/LxRunOffline/blob/master/README.md#donation

上記の -f パラメータは centos7.8 イメージの場所を示し、-d は centos7 の wsl インストール パスです。インストールが完了すると、このパスの下にインストールされたディレクトリのリストが表示されます。 Linux はファイルです」(バード兄弟は言いました)。
ここに画像の説明を挿入します
次に、LxRunOffline を使用して、現在インストールされている Linux のバージョンを確認できます。Ubuntu と Debian はどちらもコンピューターのソフトウェア ストアを通じて私がインストールしたもので、Centos が新たに追加されました。ここに表示されていることがわかります。また、新しいもの。デスクトップ ショートカット、次のコマンドがこの作業を実行します。

PS E:\document> LxRunOffline l
Ubuntu
Debian
CentOS
PS E:\document> LxRunOffline s -n CentOS -f C:\Users\samu\Desktop\CentOS7.8.lnk

wsl -d centos コマンドを使用して、cmd ターミナルでシステムを切り替えることもできます。その効果は次のとおりです。

PS C:\Users\samu\Desktop> wsl -d centos
[root@DESKTOP-SJO8SMG Desktop]# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)

Centos は exit メソッドで終了することができ、このようにデスクトップのショートカットが開きます なお、
ここに画像の説明を挿入します
この時の centos システムは最小インストールに従って実行する必要があるため、多くのコマンドを使用する場合は -bash: command not found と表示されます。幸いなことに、yum インストール ツールが装備されているため、必要なコマンドを簡単にインストールできます。

–更新: Centos を開く上記の方法に加えて、シャットダウンして再起動し、Windows ターミナルを使用した後、次の場所に centos サブシステムが表示され、直接開くことができるようになります。(私のwin11はこんな感じです。他の人は知りません。違う状況がある場合はご指摘ください。皆さんの誤解を避けるために変更させていただきます)
ここに画像の説明を挿入します

LxRunOffline centos7 インストールブーストノート

現在使用しているcentos7には、インストールパッケージを取得するためのwgetコマンドをはじめ、別途インストールが必要なコマンドが多数あるので、まずは必要なツールをインストールしましょう。

yum -y install wget
yum -y install sudo
sudo yum install gcc

上記では gcc4 バージョンがインストールされているため、上記の centos サーバーで実行される scl 操作も実行する必要があります。

yum install centos-release-scl
yum install scl-utils
yum install devtoolset-7-toolchain#安装gcc7版本
scl enable devtoolset-7 bash

次に、圧縮パッケージを取得し、圧縮パッケージを解凍します。

wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
tar xvzf boost_1_78_0.tar.gz

boost_1_78_0.tar.gz のルート ディレクトリに切り替え、bootstrap.sh スクリプトを実行してブースト ビルド プログラム b2 を生成します。

./bootstrap.sh

ただし、まだ問題があるようです。生成プロセス中に Unicode/ICU support for Boost.Regex?.. not found. が表示されます。ただし、b2 はこのディレクトリに生成されるようです。実行してください。

./b2 --buildtype=complete install

より包括的なブースト ライブラリが必要だったので、すべてのインストールを使用しましたが、他の特定のパラメータについては Baidu を検索すると簡単に見つかるはずです。説明すると、ここでのインストールはすべて /usr/local ディレクトリに生成され、一部の実装ファイルは lib ディレクトリにあり、その他の大部分は .hpp (.h+.cpp、宣言) の形式で include ディレクトリに保存されます。 +実装)。
テストは次のとおりです

#include <iostream>                                                                                            
#include <boost/version.hpp>                                                                                   
#include <boost/config.hpp>                                                                                                                                                                                                   
using namespace std;                                                                                                                                                                                                          
int main() {
    
                                                                                                               
cout << BOOST_VERSION << endl;                                                                                 
cout << BOOST_LIB_VERSION << endl;                                                                             
cout << BOOST_PLATFORM << endl;                                                                                
cout << BOOST_COMPILER << endl;                                                                                
cout << BOOST_STDLIB << endl;                           
return 0;
}

通常通りにコンパイルすると、結果は次のようになります。

[root@DESKTOP-SJO8SMG project]# g++ version.cpp -o version                                                     
[root@DESKTOP-SJO8SMG project]# ./version                                                                      
107800                                                                                                         
1_78                                                                                                           
linux                                                                                                          
GNU C++ version 7.3.1 20180303 (Red Hat 7.3.1-5)                                                               
GNU libstdc++ version 20180303 

上記のコンパイルと生成に欠陥があるため、生成されたプロジェクトが 10 個スキップされました。どれについては、boost.regex が使用されていないため、何か問題があるようです。そうかどうかはわかりませんが、ただのビルドですこのドアはプロジェクトが多すぎることを示しています。後で見つけたら更新します。

おすすめ

転載: blog.csdn.net/weixin_44948269/article/details/121856832