2016-01-20 18 views
2

我正在試圖在docker容器內的opensuse 13.2上構建kerberos。我已經安裝了所需的庫:在opensuse上構建Python kerberos擴展失敗

bash-4.2# cat /etc/os-release 
NAME=openSUSE 
VERSION="13.2 (Harlequin)" 
VERSION_ID="13.2" 
PRETTY_NAME="openSUSE 13.2 (Harlequin) (x86_64)" 
ID=opensuse 
ANSI_COLOR="0;32" 
CPE_NAME="cpe:/o:opensuse:opensuse:13.2" 
BUG_REPORT_URL="https://bugs.opensuse.org" 
HOME_URL="https://opensuse.org/" 
ID_LIKE="suse" 
bash-4.2# 

bash-4.2# zypper search --installed krb5 
S | Name  | Summary          | Type 
--+------------+---------------------------------------------+-------- 
i | krb5  | MIT Kerberos5 Implementation--Libraries  | package 
i | krb5-devel | MIT Kerberos5 - Include Files and Libraries | package 


bash-4.2# pip install kerberos 
Downloading/unpacking kerberos 
    Downloading kerberos-1.2.3.tar.gz 
    Running setup.py (path:/tmp/pip_build_root/kerberos/setup.py) egg_info for package kerberos 

Installing collected packages: kerberos 
    Running setup.py install for kerberos 
    building 'kerberos' extension 
    gcc -pthread -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DOPENSSL_LOAD_CONF -fPIC -I/usr/include/python2.7 -c src/base64.c -o build/temp.linux-x86_64-2.7/src/base64.o sh: krb5-config: command not found 
    gcc: error: sh:: No such file or directory 
    gcc: error: krb5-config:: No such file or directory 
    gcc: error: command: No such file or directory 
    gcc: error: not: No such file or directory 
    gcc: error: found: No such file or directory 
    error: command 'gcc' failed with exit status 1 
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/kerberos/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-8u80ki-record/install-record.txt --single-version-externally-managed --compile: 
    running install 

running build 

running build_ext 

building 'kerberos' extension 

creating build 

creating build/temp.linux-x86_64-2.7 

creating build/temp.linux-x86_64-2.7/src 

gcc -pthread -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DOPENSSL_LOAD_CONF -fPIC -I/usr/include/python2.7 -c src/base64.c -o build/temp.linux-x86_64-2.7/src/base64.o sh: krb5-config: command not found 

gcc: error: sh:: No such file or directory 

gcc: error: krb5-config:: No such file or directory 

gcc: error: command: No such file or directory 

gcc: error: not: No such file or directory 

gcc: error: found: No such file or directory 

error: command 'gcc' failed with exit status 1 

---------------------------------------- 
Cleaning up... 
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/kerberos/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-8u80ki-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/kerberos 
Storing debug log for failure in /root/.pip/pip.log 

我嘗試了各種各樣的方法,例如查找krb5-config或其他krb5庫。但是,在openSUSE上,一切都在krb5-devel包內。你有什麼建議嗎?

我的核心目的是在openSUSE建立Ansible Windows support

+0

'rpm -ql krb5-devel | grep krb5-config'返回任何東西? –

+0

'bash-4.2#rpm -ql krb5-devel | grep krb5-config /usr/lib/mit/bin/krb5-config /usr/share/man/man1/krb5-config.1.gz' – praving5

+0

那麼這個目錄是'/ usr/lib/mit/bin'在路徑中? –

回答

0

Python中的Kerberos包似乎難以編制,這可能是至少暫時的解決辦法

pip install kerberos==1.1.1 

後來的版本似乎錯過了需要的頭文件,所以可能會有一些包裝問題。

+0

SRC/kerberos.c:19:27:致命錯誤:kerberosbasic.h:沒有這樣的文件或目錄 的#include 「kerberosbasic.h」編譯終止3210^ 。 – praving5

+0

@ praving5頭文件從kerberos-1.1.2中丟失,但存在於kerberos-1.1.1中,即我可能混合了版本。 –

+0

太棒了!我終於明白了這一點。即使在1.2.3版本標題丟失。 1.1.1像魅力一樣工作。 – praving5

0

嘗試1.2.4;不知道1.2.3中的頭文件出了什麼問題,但他們在1.2.4中出現了問題。