close

案發時間 : 201708 、 現場(環境): Ubuntu 14.04
受害者 (套件): pycurl、python-setuptools(easy_install)


筆錄(錯誤原因):
因為程式上的需求,需要安裝pycurl套件在系統當中,

但想透過pip去進行簡易安裝的時候,發現跳出錯誤,造成安裝失敗。


處理方式:

第一步:進行apt update
# apt-get update

檢查curl-config是否已經安裝

Ubuntu 14.04 狀態下是沒有安裝的。

Ubuntu 16.04 已經安裝完成。

whereis 來檢查安裝狀況。

#whereis curl-config

如果有裝安裝,就會向下面一樣顯示路徑。

ryu@ubuntu:~$ whereis curl-config

curl-config: /usr/bin/curl-config /usr/bin/X11/curl-config /usr/share/man/man1/curl-config.1.gz

 

如果沒安裝,只會有名稱,但沒有路徑

ryu@ubuntu:~$ whereis curl-config

curl-config:

 

那我們這邊簡單試一下,這個curl-config可能需要甚麼套件。

ryu@ubuntu:~$ curl-config

The program 'curl-config' can be found in the following packages:

 * libcurl4-gnutls-dev

 * libcurl4-nss-dev

 * libcurl4-openssl-dev

Try: sudo apt-get install <selected package>

 

提示訊息都那麼清楚了,那我們就遵照他的步驟來進行吧。

#sudo apt-get install libcurl4-gnutls-dev

#sudo apt-get install libcurl4-nss-dev

#sudo apt-get install libcurl4-openssl-dev

 

安裝完這三個套件,curl-config就算正式安裝完畢。


接著我們要來準備我們的安裝工具(easy-tool)跟他的lib

#sudo apt-get install python-setuptools

#sudo apt-get install libxtst-dev

當這邊安裝完成,我們就可以用easy_install 指令去安裝套件了。

這邊我們要安裝的是 pycurl

#sudo easy_install pycurl

#!#################################################################

ryu@ubuntu:~$ sudo easy_install pycurl

Searching for pycurl

Reading https://pypi.python.org/simple/pycurl/

Downloading https://pypi.python.org/packages/12/3f/557356b60d8e59a1cce62ffc07ecc03e4f8a202c86adae34d895826281fb/pycurl-7.43.0.tar.gz#md5=c94bdba01da6004fa38325e9bd6b9760

Best match: pycurl 7.43.0

Processing pycurl-7.43.0.tar.gz

Writing /tmp/easy_install-G0C_V_/pycurl-7.43.0/setup.cfg

Running pycurl-7.43.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-G0C_V_/pycurl-7.43.0/egg-dist-tmp-Vfnu3d

Using curl-config (libcurl 7.35.0)

warning: no files found matching 'src/Makefile'

zip_safe flag not set; analyzing archive contents...

Moving pycurl-7.43.0-py2.7-linux-x86_64.egg to /usr/local/lib/python2.7/dist-packages

Adding pycurl 7.43.0 to easy-install.pth file

 

Installed /usr/local/lib/python2.7/dist-packages/pycurl-7.43.0-py2.7-linux-x86_64.egg

Processing dependencies for pycurl

Finished processing dependencies for pycurl

#!#################################################################

有看到安裝成功是非常開心的。

但安裝成功不代表可以使用,我們還是要來測試一下。


測試階段:

安裝後要進行pycurl有沒有安裝成功,

最簡單的方法就是進入python的環境下測試

這邊import pycurl 沒有出現其他錯誤提示訊息,就表示成功了。

ryu@ubuntu:~$ python

Python 2.7.6 (default, Oct 26 2016, 20:30:19)

[GCC 4.8.4] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import pycurl

>>> quit()

到這邊,pycurl就算正確的安裝完畢了。


安裝錯誤訊息:

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
如果出現問題且gcc已經安裝完成了,

那我們注意一下python-dev有沒有正確安裝

#sudo apt-get install python-dev

基本上這邊安裝好後,重新測試一次安裝pycurl就會成功了。


後記:

就以這次安裝問題來說,原本我是打算用最簡單的方式來安裝pycurl

也就是使用pip,但使用pip安裝時跳出了下面的問題。

#sudo pip install pycurl

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-HtcwQj/pycurl/

上網查發現,很多人都說跟相依性套件有關係。

但絕大多數人都在說CentOS上使用pip安裝錯誤該安裝甚麼套件。

這部分已經有很多人介紹,所以就不多說。

反倒是沒有很多說ubuntu該怎麼辦的。

所以我這邊選擇改用easy_install的方法去進行安裝。


而在CentOS下要使用easy_install的話,只要安裝下面的套件就可以執行了

#yum -y install libcurl-devel

# easy_install  pycurl

 

使用easy_install是我用的第二個方法。

--------------------------------------------------------------------------------------------------------
使用第一個方法後,但我還是無法安裝pycurl

第一個方法我是去下載libcurl

下載網址http://curl.haxx.se/download/
抓了最新版的 url_7.XX.0.orig.tar.gz

進行了編譯及安裝的動作

#./configure --prefix=/usr/local/curl

#sudo make && sudo make install

重新安裝pycurl

#sudo pip install pycurl

然後我得到一樣的錯誤。

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-HtcwQj/pycurl/

-----------------------------------------------------------------------------------------------

當然後有人有分享在ubuntu上用其他方法安裝pycurl

就依照自己的需求去找方法吧

(全篇完)


 

參考網址:

http://mycodetub.logdown.com/posts/745281-install-ubuntu-1604-pycurl

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 IT001 的頭像
    IT001

    IT001

    IT001 發表在 痞客邦 留言(0) 人氣()