Centospython3コンパイルインストールとコンパイルgccアップグレード

はじめに:新しい仮想マシンでテストと学習を行っていたので、同僚がgccをアップグレードしてインストールし、システムの問題を引き起こしているという話を聞いたので、gccをインストールするときは注意してください。

1. システム環境#

1.1 gccバージョン##

[ root@linux-01~]# yum install -y gcc
# インストールプロセスは省略

[ root@linux-01~]# gcc -v
組み込みの仕様を使用します。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
ターゲット:x86_64-redhat-linux
構成:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function--with-tune=generic --with-arch_32=x86-64--build=x86_64-redhat-linux
スレッドモデル:posix
gccバージョン4.8.520150623(Red Hat 4.8.5-44)(GCC)

1.2 セントスバージョン##

[ root@linux-01~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810(Core)

1.3 Python3.9バージョンをダウンロード##

[ root@linux-01~]# wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz

[ root@linux-01~]# tar -xvJf Python-3.9.0.tar.xz

1.4 pythonインストールエラー##

[ root@linux-01~]# cd Python-3.9.0[root@linux-01 Python-3.9.0]# ./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
# 最初に指定されたインストールパス,指定されていない場合,インストールプロセス中に、ソフトウェアに必要なファイルが他の異なるディレクトリにコピーされる場合があります,ソフトウェアを削除するのは不便です,ソフトウェアのコピーは便利ではありません.
# 2つ目はpython10を改善できます%-20%コードの実行速度.
# 3つ目は、sslを使用してpipをインストールすることです。,エラーについては後で説明します.[root@linux-01 Python-3.9.0]# make -j4

Python 3.9.0をコンパイルしてインストールしようとしましたが、makeプロセス中にエラーが報告されました。エラーメッセージは次のとおりです。

Could not import runpy module
Traceback(most recent call last):
 File "/root/Python-3.9.0/Lib/runpy.py", line 15,in<module>import importlib.util
 File "/root/Python-3.9.0/Lib/importlib/util.py", line 2,in<module>from.import abc
 File "/root/Python-3.9.0/Lib/importlib/abc.py", line 17,in<module>from typing import Protocol, runtime_checkable
 File "/root/Python-3.9.0/Lib/typing.py", line 21,in<module>import collections
SystemError:<built-infunction compile> returned NULL without setting an error
generate-posix-vars failed
make[1]:***[pybuilddir.txt]エラー1
make[1]:ディレクトリを離れる」/root/Python-3.9.0”
make:***[profile-opt]エラー2

クエリ後の原因は次のとおりです。gccのバージョンが比較的低い、gcc8.1.0でこの問題が修正され、configureを使用してコンパイルとインストールを行う場合、–enable-optimizationsオプションを削除します。これは仮想マシン環境であり、GCCテストをアップグレードしてみます。下。したがって、以下にgccバージョンのアップグレードがあり、アップグレードでエラーが発生しました。完全ではない多くの投稿を読んで、記録を作成しました。

2. gcc依存関係とgccをインストールします#

2.1 gcc ##のインストールに必要な依存関係

コンパイルする前に、GCCに依存するライブラリ(gmp、mpfr、mpc)をインストールする必要があります。コンパイルもm4などのコンパイルツールに依存しています。そうでない場合、configueの実行時に対応するエラーが報告されます。このとき、これらのコンパイルツールを最初にインストールする必要があります。

2.1.1 gmp6.1.0 ###をインストールします

GMPは、GNUオープンソースの数学的操作ライブラリである「GNUMPBignumLibrary」の略語です。

[ root@linux-01~]# wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.bz2
[ root@linux-01~]# tar xvfj gmp-6.1.0.tar.bz2
[ root@linux-01~]# cd gmp
[ root@linux-01~]# ./configure --prefix=/usr/local/gmp6.1.0[root@linux-01~]# make
[ root@linux-01~]# make install

2.1.2 isl ###をインストールします

[ root@linux-01~]# wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
[ root@linux-01~]# tar xvfj isl-0.18.tar.bz2
[ root@linux-01~]# cd isl
[ root@linux-01~]# ./configure --prefix=/usr/local/isl0.18--with-gmp-prefix=/usr/local/gmp6.1.0[root@linux-01~]# make
[ root@linux-01~]# make install 

2.1.3 mpfr ###をインストールします

mpcは、gmpとmpfrに依存するGNUのオープンソースの複雑なデジタルアルゴリズムです。

# mpfrをインストールします
[ root@linux-01~]# wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2
[ root@linux-01~]# tar xvfj mpfr-3.1.4.tar.bz2
[ root@linux-01~]# cd mpfr 
[ root@linux-01 mpfr]# ./configure --prefix=/usr/local/mpfr3.1.4--with-gmp=/usr/local/gmp6.1.0[root@linux-01~]# make
[ root@linux-01~]# make install 

2.1.4 mpc ###をインストールします

mpfrは、gmpに依存するGNUオープンソースの多数の算術ライブラリです。

# mpcをインストールします
[ root@linux-01~]# wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
[ root@linux-01~]# tar xvfz mpc-1.0.3.tar.gz
[ root@linux-01 mpc]# ./configure --prefix=/usr/local/mpc1.0.3--with-gmp=/usr/local/gmp6.1.0/--with-mpfr=/usr/local/mpfr3.1.4/[root@linux-01~]# make && make install

2.2 GCCをインストールします##

2.2.1 gcc 8.1.0 ###をダウンロード

[ root@linux-01~]# wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.xz
- - 2020- 11- 2418:08:04- - ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.xz
   => “gcc-8.1.0.tar.xz”
ホストftpを解決しています.mirrorservice.org(ftp.mirrorservice.org)...212.219.56.184,2001:630:341:12::184
ftpに接続しています.mirrorservice.org(ftp.mirrorservice.org)|212.219.56.184|:21...接続されています。
匿名でログイン...ログイン成功!
==> SYST ...実施する。==> PWD ...実施する。
==> TYPE I ...実施する。==>CWD(1)/sites/sourceware.org/pub/gcc/releases/gcc-8.1.0...実施する。
==> SIZE gcc-8.1.0.tar.xz ...63372320==> PASV ...実施する。==> RETR gcc-8.1.0.tar.xz ...実施する。
長さ:63372320(60M)(非公式データ)100%[========================================================================================================================================================================>]63,372,3203.67MB/sは25秒かかります

2020- 11- 2418:08:37(2.40 MB/s)- “gcc-8.1.0.tar.xz &quot;保存[63372320][root@linux-01~]# tar -xvJf   gcc-8.1.0.tar.xz

[ root@linux-01~]# cd gcc-8.1.0

2.2.2 gcc ###をコンパイルしてインストールします

[ root@linux-01 gcc-8.1.0]# ./configure --prefix=/usr/local/gcc8.1.0--with-gmp=/usr/local/gmp6.1.0--with-mpfr=/usr/local/mpfr3.1.4/--with-isl=/usr/local/isl0.18--with-mpc=/usr/local/mpc1.0.3/

…………
*** This configuration is not supported in the following subdirectories:
  gnattools gotools target-libada target-libhsail-rt target-libgo target-libffi target-liboffloadmic(Any other directories should still work fine.)
checking fordefault BUILD_CONFIG... bootstrap-debug
checking for--enable-vtable-verify... no
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libgcc_s.so when searching for-lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libgcc_s.so when searching for-lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
configure: error: I suspect your system does not have 32-bit development libraries(libc and headers). If you have them, rerun configure with--enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with--disable-multilib.
[ root@linux-01 gcc-8.1.0]# ./configure -enable-checking=release -enable-languages=c,c++-enable-multilib   --prefix=/usr/local/gcc8.1.0--with-gmp=/usr/local/gmp6.1.0--with-mpfr=/usr/local/mpfr3.1.4/--with-isl=/usr/local/isl0.18--with-mpc=/usr/local/mpc1.0.3/[root@linux-01 gcc-8.1.0]#  make -j4

…………
/root/gcc-8.1.0/host-x86_64-pc-linux-gnu/gcc/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
make[3]:***[s-selftest-c]エラー1
rm gcc.pod
make[3]:ディレクトリを離れる」/root/gcc-8.1.0/host-x86_64-pc-linux-gnu/gcc”
make[2]:***[all-stage1-gcc]エラー2
make[2]:ディレクトリを離れる」/root/gcc-8.1.0”
make[1]:***[stage1-bubble]エラー2
make[1]:ディレクトリを離れる」/root/gcc-8.1.0”
make:***[all]エラー2
[ root@linux-01 gcc-8.1.0]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
include /usr/local/lib

[ root@linux-01 gcc-8.1.0]# find /usr/local/lib/  -name 'libisl.so.15'
[ root@linux-01 gcc-8.1.0]# ldconfig
[ root@linux-01 gcc-8.1.0]# rm -rf host-x86_64-pc-linux-gnu

[ root@linux-01 gcc-8.1.0]# find /-name 'libisl.so.15'/root/isl-0.18/.libs/libisl.so.15/usr/local/isl0.18/lib/libisl.so.15[root@linux-01 gcc-8.1.0]# ln -s /usr/local/isl0.18/lib/libisl.so.15/usr/lib64/libisl.so.15
[ root@linux-01 gcc-8.1.0]# vim /etc/ld.so.conf

include ld.so.conf.d/*.conf
include /usr/lib64/

[ root@linux-01 gcc-8.1.0]# ldconfig

[ root@linux-01 gcc-8.1.0]# ldconfig -v |grep libis
ldconfig:正しくない/統計操作用のlibx32:そのようなファイル、又はディレクトリはありません
ldconfig:パスを複数回与える」/usr/lib”
ldconfig:パスを複数回与える」/usr/lib64”
ldconfig:正しくない/usr/統計操作用のlibx32:そのようなファイル、又はディレクトリはありません
	libisl.so.15 -> libisl.so.15

2.2.3 再コンパイル###

[ root@linux-01 gcc-8.1.0]# ./configure -enable-checking=release -enable-languages=c,c++-enable-multilib   --prefix=/usr/local/gcc8.1.0--with-gmp=/usr/local/gmp6.1.0--with-mpfr=/usr/local/mpfr3.1.4/--with-isl=/usr/local/isl0.18--with-mpc=/usr/local/mpc1.0.3/[root@linux-01 gcc-8.1.0]#  make -j4

[ root@linux-01 gcc-8.1.0]#  make install 

[ root@linux-01 gcc-8.1.0]# /usr/local/gcc8.1.0/bin/gcc  -v
組み込みの仕様を使用します。
COLLECT_GCC=/usr/local/gcc8.1.0/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc8.1.0/libexec/gcc/x86_64-pc-linux-gnu/8.1.0/lto-wrapper
ターゲット:x86_64-pc-linux-gnu
構成:./configure -enable-checking=release -enable-languages=c,c++-disable-multilib --prefix=/usr/local/gcc8.1.0--with-gmp=/usr/local/gmp6.1.0--with-mpfr=/usr/local/mpfr3.1.4/--with-isl=/usr/local/isl0.18--with-mpc=/usr/local/mpc1.0.3/
スレッドモデル:posix
gccバージョン8.1.0(GCC)

3. Python3.9をインストールします##

[ root@linux-01 gcc-8.1.0]# cd ../Python-3.9.0/[root@linux-01 Python-3.9.0]# mv /usr/bin/gcc  /usr/bin/gcc4.8.5[root@linux-01 Python-3.9.0]# ln -s /usr/local/gcc8.1.0/bin/gcc  /usr/bin/gcc

root@linux-01 Python-3.9.0]# ./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
root@linux-01 Python-3.9.0]# make -j4
root@linux-01 Python-3.9.0]# make install 

…………
Traceback(most recent call last):
 File "<frozen zipimport>", line 520,in _get_decompress_func
ModuleNotFoundError: No module named 'zlib'

During handling of the above exception, another exception occurred:Traceback(most recent call last):
 File "<frozen zipimport>", line 568,in _get_data
 File "<frozen zipimport>", line 523,in _get_decompress_func
zipimport.ZipImportError: can't decompress data; zlib not available

During handling of the above exception, another exception occurred:Traceback(most recent call last):
 File "<string>", line 6,in<module>
 File "/root/Python-3.9.0/Lib/runpy.py", line 206,in run_module
 mod_name, mod_spec, code =_get_module_details(mod_name)
 File "/root/Python-3.9.0/Lib/runpy.py", line 147,in _get_module_details
 return_get_module_details(pkg_main_name, error)
 File "/root/Python-3.9.0/Lib/runpy.py", line 111,in _get_module_details
 __ import__(pkg_name)
 File "<frozen zipimport>", line 241,in load_module
 File "<frozen zipimport>", line 709,in _get_module_code
 File "<frozen zipimport>", line 570,in _get_data
zipimport.ZipImportError: can't decompress data; zlib not available
Traceback(most recent call last):
 File "/root/Python-3.9.0/Lib/runpy.py", line 197,in _run_module_as_main
 return_run_code(code, main_globals, None,
 File "/root/Python-3.9.0/Lib/runpy.py", line 87,in _run_code
 exec(code, run_globals)
 File "/root/Python-3.9.0/Lib/ensurepip/__main__.py", line 5,in<module>
 sys.exit(ensurepip._main())
 File "/root/Python-3.9.0/Lib/ensurepip/__init__.py", line 210,in _main
 return_bootstrap(
 File "/root/Python-3.9.0/Lib/ensurepip/__init__.py", line 129,in _bootstrap
 return_run_pip(args +[p[0]for p in _PROJECTS], additional_paths)
 File "/root/Python-3.9.0/Lib/ensurepip/__init__.py", line 38,in _run_pip
 return subprocess.run([sys.executable,"-c", code], check=True).returncode
 File "/root/Python-3.9.0/Lib/subprocess.py", line 524,in run
 raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/root/Python-3.9.0/python', '-c', '\nimport runpy\nimport sys\nsys.path =[\'/tmp/tmp4xj56co0/setuptools-49.2.1-py3-none-any.whl\', \'/tmp/tmp4xj56co0/pip-20.2.3-py2.py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmp4xj56co0\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1.
make:***[install]エラー1
[ root@linux-01 Python-3.9.0]# yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
# インストールエラーは省略
[ root@linux-01 Python-3.9.0]# make install

[ root@linux-01 Python-3.9.0]# echo 'expoct PATH=$PATH:/usr/local/python3/bin '>>/etc/profile
[ root@linux-01 Python-3.9.0]# source /etc/profile

Recommended Posts

Centospython3コンパイルインストールとコンパイルgccアップグレード
CentOS6.9はpythonをコンパイルしてインストールします
CentOS6はpython3をコンパイルしてインストールします
CentOS7アップグレードpython3
Centos 6.4 python2.6を2.7にアップグレード
Centos 6.4 python2.6を2.7にアップグレード
CentosソースのインストールPython3
Pythonの紹介と環境のインストール
CentOSはpython2をpythにアップグレードします
centos7はpython3とipythonをインストールします
Centosmysqlのインストールと構成
CentOs7.3はNginx1.9.9をコンパイルしてインストールします
Centos7のインストールと構成のプロメテウス
ubuntu18.04python3.8をコンパイルしてインストールします
CentOS7のインストールと構成PPTP
CentosはGitをコンパイルしてインストールします
Centos6.10はpythonとyumを再インストールします
CentOSのインストールと構成cmake
Centos7.5のインストールと構成MongoDB4.0.4
CentOS7のインストールと構成PPTP
centos7kvmのインストールと使用
CentOS7はpython3とpip3をインストールします
CentOS7postgresqlのインストールと使用
Centos7はntp-4.2.8p11をコンパイルしてインストールします
centos6.5:gccアップグレード(5.2.0)プロセスレコード
Centos7elk7.1.1のインストールと使用
Centos7のインストールとJenkinsの構成
CentOSYumはMySQL5.6をコンパイルしてインストールします
Centos5.2でLAMPをコンパイルしてインストールします
Centos6.5のインストールとKVMの展開
Centos7hadoopクラスターのインストールと構成
CentOS7のインストールとGitlabのメンテナンス
CentOS7でOpenSSLとOpenSSHをアップグレードする
CentOS6.xはNginxをコンパイルしてインストールします
CentOS7はL(A | N)MP環境をコンパイルしてインストールします
CentOSはPython3とpip3をすばやくインストールします
Centos6.7には、へのpythonアップグレードが付属しています
CentOS7.Xシステムのインストールと最適化
CentOSでのJava-JDKのインストールと構成
Python3をインストールし、CentOS8でansible
CentOS 7Tomcatサービスのインストールと構成
centos7でpython3環境を構成し、
CentOSNTPサーバーのインストールと構成
CentOS7の下にPython3とPyをインストールします
CentOs7のインストールと展開Zabbix3.4オリジナル
LinuxCentOS6はPytをコンパイルしてインストールします
CentOS7でのErlang20.2のインストールと展開
Centos7mysqlデータベースのインストールと構成
CentOS + Python3.6 +
2019-07-09CentOS7のインストール
centos7_1708のインストール
Centos 7.5 python3.6
CentOS7システムのインストールと構成のグラフィックチュートリアル
CentOS7でlibmodbusライブラリをコンパイルしてインストールします
CentOSでのMysqlのインストールと使用
CentOS 7でのTomcatのインストールと構成(Tomcatの起動)
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Centos-6.5LNMP環境のインストールと展開
LinuxカーネルのコンパイルとCentOSシステムのインストール
CentOS7.5ソースコードはmysql5.7.29をコンパイルしてインストールします
Centos7.6オペレーティングシステムのインストールと最適化の記録