linux安裝fasttext報錯,升級gcc后成功解決


首先說一下存在問題:

本人打算在linux安裝一個fasttext用來訓練詞向量,本來是想要從gensim來調用fasttext的,但是加載大的本地txt一直不對,沒辦法了只好在linux安裝一個fasttext了,他支持直接加載txt來進行訓練,但是pip install fasttext直接出錯了:

Command "/root/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-nqkwqurw/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-8tp5iux8/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-req-build-nqkwqurw/error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

一堆錯誤也看不懂,上網一頓查找也沒整明白,后來看到error: command 'x86_64-linux-gnu-gcc' failed with exit status 1這句話,突然想起來貌似fasttext官網給出了fasttext運行環境要求:

https://github.com/facebookresearch/fastText---官網地址

官網要求fasttext的運行環境是:(g++-4.7.2 or newer) or (clang-3.3 or newer)

我的linux的g++版本很低(貌似是2點幾的版本),所以會報錯,接下來就好辦了,升級gcc就行了;

我是全程按照這個哥們的帖子來執行的,居然完美解決,下面把地址和內容貼出來:

轉載自https://itbilu.com/linux/management/V1vdnt9ll.html

各發行版本Linux中,其自帶的gcc安裝源版本都比較舊,我所使用CentOS 6系統中,gcc版本只有4.4.7。最近要安裝幾個軟件要求gcc 4.8+,無奈只能手動升級gcc

 

1. 下載最新版本gcc

gcc當前最新版本是5.2,下面是我找到的兩個下載鏡像,下載速度還可以,都可以使用:

wget http://gcc.parentingamerica.com/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2  # 這個測試了 不能使用了
// 或
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2

上面兩個鏡像分別位於加拿大和日本,由於gcc本身比較大(100MB左右),所以下載會需要一些時間。如果下載很慢,也可以到gcc官網查找較快的下載鏡像。

 

2. 解壓下載文件

gcc安裝文件下載完成后,執行以下命令解壓文件:

tar -xf gcc-5.2.0.tar.bz2

 

3. 下載gcc依賴文件和庫

解壓完成后,執行以下命令進入工作目錄:

cd gcc-5.2.0

執行download_prerequisites腳本,下載gcc依賴文件和庫:

./contrib/download_prerequisites

download_prerequisites腳本,會下載安裝gcc所需的mpfrgmpmpc文件。

 

4. 配置安裝gcc

建立一個輸出目錄,編譯時所有生成的中間文件都放到該目錄下:

mkdir gcc-temp

工作目錄切換至輸出目錄,並在其中執行配置和安裝:

cd gcc-temp

執行configure配置安裝文件:

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

配置完成后,執行以下命令,編譯gcc

make

注意:編譯gcc時間較長,我用了近三個小才編譯完成。

編譯完成后,安裝gcc

make install

安裝完成后還需要替換系統默認的gcc,執行以下命令,查找5.2版本的安裝文件:

ls /usr/local/bin | grep gcc

輸出如下:

gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-5.2.0    //就是這個
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib

執行升級命令:

/usr/sbin/update-alternatives --install  /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 52

 

5. 驗證安裝

執行以下命令查看gcc版本:

gcc -v

執行以下命令查看g++版本:

g++ -v

或使用which gcc查看gcc安裝目錄,在安裝目錄下執行-v命令。例如,安裝目錄為/usr/local/bin/gcc

/usr/local/bin/gcc -v

如果輸出中有類似以下行,說明安裝成功:

gcc 版本 5.2.0 (GCC) 

最后附上我的升級結果:

fasttext安裝結果

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM