質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

Q&A

1回答

2225閲覧

Homebrew による CentOS への gcc のインストール

h_iuchi

総合スコア11

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

0グッド

0クリップ

投稿2021/06/04 09:24

前提・実現したいこと

Homebrew を使って CentOS に gcc をインストールしたいのですが、エラーが出てしまって困っています。

発生している問題・エラーメッセージ

長いですが、brew install gcc の実行結果をコピペします。

[username@tn1 ~]$ brew install gcc Error: Please update your system curl. Minimum required version: 7.41.0 Your curl version: 7.29.0 Your curl executable: /usr/bin/curl Error: Please update your system Git. Minimum required version: 2.7.0 Your Git version: 1.8.3.1 Your Git executable: /usr/bin/git Updating Homebrew... Warning: Building gcc@5 from source as the bottle needs: - HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar (yours is /home/username/.linuxbrew/Cellar)

中略

==> Installing dependencies for curl: gcc@5, brotli, pkg-config, gpatch, ncurses, readline, libxml2, gettext, libunistring, libidn2, expat, libmetalink, openssl@1.1, libssh2, c-ares, jemalloc, libev, nghttp2, libyaml, ruby@2.7, asciidoctor, util-linux, openldap, rtmpdump, zstd, bison and krb5 ==> Installing curl dependency: gcc@5 ==> ../configure --prefix=/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7 --libdir=/home/username/.linuxb ==> make bootstrap Last 15 lines from /home/username/.cache/Homebrew/Logs/gcc@5/02.make: # @multilib_flags@ is still needed because this may use # /tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build/./gcc/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include and -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector directly. # @multilib_dir@ is not really necessary, but sometimes it has # more uses than just a directory name. /bin/sh ../../../libgcc/../mkinstalldirs . /tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build/./gcc/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o _powitf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status make[3]: *** [libgcc_s.so] Error 1 make[3]: Leaving directory `/tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build/x86_64-unknown-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] Error 2 make[2]: Leaving directory `/tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/tmp/gccA5-20210604-284925-1ieovuz/gcc-5.5.0/build' make: *** [bootstrap] Error 2

中略

==> Installing dependencies for gcc: gcc@5, isl and zstd ==> Installing gcc dependency: gcc@5 ==> ../configure --prefix=/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7 --libdir=/home/username/.linuxb ==> make bootstrap Last 15 lines from /home/username/.cache/Homebrew/Logs/gcc@5/02.make: # @multilib_flags@ is still needed because this may use # /tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build/./gcc/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include and -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector directly. # @multilib_dir@ is not really necessary, but sometimes it has # more uses than just a directory name. /bin/sh ../../../libgcc/../mkinstalldirs . /tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build/./gcc/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /home/username/.linuxbrew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o _powitf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status make[3]: *** [libgcc_s.so] Error 1 make[3]: Leaving directory `/tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build/x86_64-unknown-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] Error 2 make[2]: Leaving directory `/tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/tmp/gccA5-20210604-319962-l5h14l/gcc-5.5.0/build' make: *** [bootstrap] Error 2

途中でcurlがないというようなエラーが出ていますが、adminがインストールしたcurlは入っているはずです。

[username@tn1 ~]$ which curl /bin/curl

補足情報(FW/ツールのバージョンなど)

CentOS Linux release 7.4.1708
Homebrew 2.5.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukky1201

2021/06/05 11:24

どうしてもHomebrew を使わなければいけない理由があるのでしょうか CentOSならパッケージ管理の標準としてyumがありますのでそちらを使うのが簡単かつ一般的なので情報も多いです
h_iuchi

2021/06/05 13:48

ご回答ありがとうございます。 書き忘れていたのですが、管理者権限がないのでyumが使えないという事情があります。
guest

回答1

0

エラーメッセージで検索すると上位に出てくる
Xserver上のHomebrew(Linuxbrew)実行時にサーバー側の(古いバージョンの)cURLを参照しないようにしたい
と同じ状態に見えるので回答の方法を試してみてはいかがでしょうか?

gitも同様にエラーが出てるので、
HOMEBREW_FORCE_BREWED_GIT
を設定したらいける気がします。

投稿2021/06/04 10:15

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h_iuchi

2021/06/04 11:44

ありがとうございます。 まだ Homebrew で curl をインストールしておらず、また Homebrew の curl のインストールには gcc が必要になるため、curl の最新版をソースコードから/home/username/.curl/にインストールしました。 curl の最新版にパスは通っているはずなのですが、まだ同じエラーが出るようです。 ``` [username@tn2 ~]$ which curl /bin/curl [username@tn2 ~]$ export PATH='/home/username/.curl/bin':"$PATH" [username@tn2 ~]$ which curl ~/.curl/bin/curl [username@tn2 ~]$ brew install gcc Error: Please update your system curl. Minimum required version: 7.41.0 Your curl version: 7.29.0 Your curl executable: /usr/bin/curl Error: Please update your system Git. Minimum required version: 2.7.0 Your Git version: 1.8.3.1 Your Git executable: /usr/bin/git Updating Homebrew... Warning: Building gcc@5 from source as the bottle needs: - HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar (yours is /home/username/.linuxbrew/Cellar) - HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew (yours is /home/username/.linuxbrew) ==> Downloading https://ftp.gnu.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.xz 以下省略 ```
tanat

2021/06/04 11:53

curl --version でバージョンを確認すると新しいもののバージョンが表示されますか?
h_iuchi

2021/06/04 12:05 編集

curl --version では新しい curl が表示されますが、brew ではシステムの curl が使用されてしまうようです。 [username@ln1 ~]$ curl --version curl 7.77.0 (x86_64-pc-linux-gnu) libcurl/7.77.0 Release-Date: 2021-05-26 Protocols: dict file ftp gopher http imap mqtt pop3 rtsp smtp telnet tftp Features: alt-svc AsynchDNS IPv6 Largefile UnixSockets [username@ln1 ~]$ brew install gcc Error: Please update your system curl. Minimum required version: 7.41.0 Your curl version: 7.29.0 Your curl executable: /usr/bin/curl Error: Please update your system Git. Minimum required version: 2.7.0 Your Git version: 1.8.3.1 Your Git executable: /usr/bin/git Updating Homebrew... Warning: Building gcc@5 from source as the bottle needs: - HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar (yours 以下省略
tanat

2021/06/04 12:16

http://k3-kaimu.hatenablog.com/entry/2016/12/17/173446 の > また,~/.linuxbrew/Library/Homebrew/brew.shの91行目を次のように編集し,/usr/bin/curlの代わりにLinuxbrewで入れたcurlが利用できるようにしておきます. > - HOMEBREW_CURL="/usr/bin/curl" > + HOMEBREW_CURL="curl" あたりを参考にして、新たにインストールした方のcurlを指定するとどうなりますか?
h_iuchi

2021/06/04 13:02

ディレクトリ構造が変わったようなので、~/.linuxbrew/Homebrew/Library/Homebrew/brew.shの281行目以降の下記の部分の3箇所ある"${HOMEBREW_CURL_PATH}"を"curl"に変えましたが、変わらずです。 # This is set by the user environment. # shellcheck disable=SC2154 if [[ -n "${HOMEBREW_FORCE_BREWED_CURL}" && -x "${HOMEBREW_PREFIX}/opt/curl/bin/curl" ]] && "${HOMEBREW_PREFIX}/opt/curl/bin/curl" --version >/dev/null then HOMEBREW_CURL="${HOMEBREW_PREFIX}/opt/curl/bin/curl" elif [[ -n "${HOMEBREW_DEVELOPER}" && -x "${HOMEBREW_CURL_PATH}" ]] then HOMEBREW_CURL="${HOMEBREW_CURL_PATH}" else HOMEBREW_CURL="curl" fi また、brew.shを編集したせいか、brew doctor を実行したときに、下記のメッセージが出るようになりました。 Warning: You have uncommitted modifications to Homebrew/brew. If this is a surprise to you, then you should stash these modifications. Stashing returns Homebrew to a pristine state but can be undone should you later need to do so for some reason. cd /home/username/.linuxbrew/Homebrew && git stash && git clean -d -f Uncommitted files: M Library/Homebrew/brew.sh
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問