Linux
Centos 7.1.1503 不再有一些 python 包假定存在的靜態庫
我跑了
repoquery -ql readline-devel
,它發現只有各種.so
庫是這個儲存庫的一部分。/usr/include/readline /usr/include/readline/chardefs.h /usr/include/readline/history.h /usr/include/readline/keymaps.h /usr/include/readline/readline.h /usr/include/readline/rlconf.h /usr/include/readline/rlstdc.h /usr/include/readline/rltypedefs.h /usr/include/readline/tilde.h /usr/lib/libhistory.so /usr/lib/libreadline.so /usr/share/doc/readline-devel-6.2 /usr/share/doc/readline-devel-6.2/excallback.c /usr/share/doc/readline-devel-6.2/fileman.c /usr/share/doc/readline-devel-6.2/histexamp.c /usr/share/doc/readline-devel-6.2/manexamp.c /usr/share/doc/readline-devel-6.2/readlinebuf.h /usr/share/doc/readline-devel-6.2/rl-fgets.c /usr/share/doc/readline-devel-6.2/rl.c /usr/share/doc/readline-devel-6.2/rlcat.c /usr/share/doc/readline-devel-6.2/rlevent.c /usr/share/doc/readline-devel-6.2/rlfe /usr/share/doc/readline-devel-6.2/rlfe/ChangeLog /usr/share/doc/readline-devel-6.2/rlfe/Makefile.in /usr/share/doc/readline-devel-6.2/rlfe/README /usr/share/doc/readline-devel-6.2/rlfe/config.h.in /usr/share/doc/readline-devel-6.2/rlfe/configure.in /usr/share/doc/readline-devel-6.2/rlfe/extern.h /usr/share/doc/readline-devel-6.2/rlfe/os.h /usr/share/doc/readline-devel-6.2/rlfe/pty.c /usr/share/doc/readline-devel-6.2/rlfe/rlfe.c /usr/share/doc/readline-devel-6.2/rlfe/screen.h /usr/share/doc/readline-devel-6.2/rlptytest.c /usr/share/doc/readline-devel-6.2/rltest.c /usr/share/doc/readline-devel-6.2/rlversion.c /usr/share/info/readline.info.gz /usr/share/man/man3/history.3.gz /usr/share/man/man3/readline.3.gz /usr/include/readline /usr/include/readline/chardefs.h /usr/include/readline/history.h /usr/include/readline/keymaps.h /usr/include/readline/readline.h /usr/include/readline/rlconf.h /usr/include/readline/rlstdc.h /usr/include/readline/rltypedefs.h /usr/include/readline/tilde.h /usr/lib64/libhistory.so /usr/lib64/libreadline.so /usr/share/doc/readline-devel-6.2 /usr/share/doc/readline-devel-6.2/excallback.c /usr/share/doc/readline-devel-6.2/fileman.c /usr/share/doc/readline-devel-6.2/histexamp.c /usr/share/doc/readline-devel-6.2/manexamp.c /usr/share/doc/readline-devel-6.2/readlinebuf.h /usr/share/doc/readline-devel-6.2/rl-fgets.c /usr/share/doc/readline-devel-6.2/rl.c /usr/share/doc/readline-devel-6.2/rlcat.c /usr/share/doc/readline-devel-6.2/rlevent.c /usr/share/doc/readline-devel-6.2/rlfe /usr/share/doc/readline-devel-6.2/rlfe/ChangeLog /usr/share/doc/readline-devel-6.2/rlfe/Makefile.in /usr/share/doc/readline-devel-6.2/rlfe/README /usr/share/doc/readline-devel-6.2/rlfe/config.h.in /usr/share/doc/readline-devel-6.2/rlfe/configure.in /usr/share/doc/readline-devel-6.2/rlfe/extern.h /usr/share/doc/readline-devel-6.2/rlfe/os.h /usr/share/doc/readline-devel-6.2/rlfe/pty.c /usr/share/doc/readline-devel-6.2/rlfe/rlfe.c /usr/share/doc/readline-devel-6.2/rlfe/screen.h /usr/share/doc/readline-devel-6.2/rlptytest.c /usr/share/doc/readline-devel-6.2/rltest.c /usr/share/doc/readline-devel-6.2/rlversion.c /usr/share/info/readline.info.gz /usr/share/man/man3/history.3.gz /usr/share/man/man3/readline.3.gz
這可能導致例如
pip install readline
失敗,因為它正在尋找(但是存在)。/usr/lib/libhistory.a``/usr/lib/libhistory.so
所以我不知道如何糾正這個問題,也許我可以做一個符號連結到
.so
?失敗是python包的錯嗎?
============ Building the readline extension module ============ building 'readline' extension gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I. -I/usr/include/python2.7 -c Modules/2.x/readline.c -o build/temp.linux-x86_64-2.7/Modules/2.x/readline.o -Wno-strict-prototypes gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/Modules/2.x/readline.o readline/libreadline.a readline/libhistory.a -L/usr/lib64 -lncurses -lpython2.7 -o build/lib.linux-x86_64-2.7/readline.so gcc: error: readline/libreadline.a: No such file or directory gcc: error: readline/libhistory.a: 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-byUz9r/readline/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-4qfEGl-record/install-record.txt --single-version-externally-managed --compile: readline-6.2/ readline-6.2/doc/ readline-6.2/doc/Makefile.in readline-6.2/doc/texinfo.tex readline-6.2/doc/version.texi readline-6.2/doc/fdl.texi readline-6.2/doc/rlman.texi readline-6.2/doc/rltech.texi readline-6.2/doc/rluser.texi readline-6.2/doc/rluserman.texi readline-6.2/doc/history.texi readline-6.2/doc/hstech.texi readline-6.2/doc/hsuser.texi readline-6.2/doc/readline.3 readline-6.2/doc/history.3 readline-6.2/doc/texi2dvi readline-6.2/doc/texi2html readline-6.2/doc/readline.ps readline-6.2/doc/history.ps readline-6.2/doc/rluserman.ps readline-6.2/doc/readline.dvi readline-6.2/doc/history.dvi readline-6.2/doc/rluserman.dvi readline-6.2/doc/readline.info readline-6.2/doc/history.info readline-6.2/doc/rluserman.info readline-6.2/doc/readline.html readline-6.2/doc/history.html readline-6.2/doc/rluserman.html readline-6.2/doc/readline.0 readline-6.2/doc/history.0 readline-6.2/doc/readline_3.ps readline-6.2/doc/history_3.ps readline-6.2/doc/history.pdf readline-6.2/doc/readline.pdf readline-6.2/doc/rluserman.pdf readline-6.2/examples/ readline-6.2/examples/autoconf/ readline-6.2/examples/autoconf/BASH_CHECK_LIB_TERMCAP readline-6.2/examples/autoconf/RL_LIB_READLINE_VERSION readline-6.2/examples/autoconf/wi_LIB_READLINE readline-6.2/examples/rlfe/ readline-6.2/examples/rlfe/ChangeLog readline-6.2/examples/rlfe/Makefile.in readline-6.2/examples/rlfe/README readline-6.2/examples/rlfe/config.h.in readline-6.2/examples/rlfe/configure readline-6.2/examples/rlfe/configure.in readline-6.2/examples/rlfe/extern.h readline-6.2/examples/rlfe/os.h readline-6.2/examples/rlfe/pty.c readline-6.2/examples/rlfe/rlfe.c readline-6.2/examples/rlfe/screen.h readline-6.2/examples/Makefile.in readline-6.2/examples/excallback.c readline-6.2/examples/fileman.c readline-6.2/examples/manexamp.c readline-6.2/examples/readlinebuf.h readline-6.2/examples/rl-fgets.c readline-6.2/examples/rlcat.c readline-6.2/examples/rlevent.c readline-6.2/examples/rltest.c readline-6.2/examples/rl.c readline-6.2/examples/rlptytest.c readline-6.2/examples/rlversion.c readline-6.2/examples/histexamp.c readline-6.2/examples/Inputrc readline-6.2/examples/rlwrap-0.30.tar.gz readline-6.2/support/ readline-6.2/support/config.guess readline-6.2/support/config.rpath readline-6.2/support/config.sub readline-6.2/support/install.sh readline-6.2/support/mkdirs readline-6.2/support/mkdist readline-6.2/support/mkinstalldirs readline-6.2/support/shobj-conf readline-6.2/support/shlib-install readline-6.2/support/wcwidth.c readline-6.2/shlib/ readline-6.2/shlib/Makefile.in readline-6.2/COPYING readline-6.2/README readline-6.2/MANIFEST readline-6.2/INSTALL readline-6.2/CHANGELOG readline-6.2/CHANGES readline-6.2/NEWS readline-6.2/USAGE readline-6.2/aclocal.m4 readline-6.2/config.h.in readline-6.2/configure readline-6.2/configure.in readline-6.2/Makefile.in readline-6.2/ansi_stdlib.h readline-6.2/chardefs.h readline-6.2/history.h readline-6.2/histlib.h readline-6.2/keymaps.h readline-6.2/posixdir.h readline-6.2/posixjmp.h readline-6.2/readline.h readline-6.2/posixselect.h readline-6.2/posixstat.h readline-6.2/rlconf.h readline-6.2/rldefs.h readline-6.2/rlmbutil.h readline-6.2/rlprivate.h readline-6.2/rlshell.h readline-6.2/rlstdc.h readline-6.2/rltty.h readline-6.2/rltypedefs.h readline-6.2/rlwinsize.h readline-6.2/tcap.h readline-6.2/tilde.h readline-6.2/xmalloc.h readline-6.2/bind.c readline-6.2/callback.c readline-6.2/compat.c readline-6.2/complete.c readline-6.2/display.c readline-6.2/emacs_keymap.c readline-6.2/funmap.c readline-6.2/input.c readline-6.2/isearch.c readline-6.2/keymaps.c readline-6.2/kill.c readline-6.2/macro.c readline-6.2/mbutil.c readline-6.2/misc.c readline-6.2/nls.c readline-6.2/parens.c readline-6.2/readline.c readline-6.2/rltty.c readline-6.2/savestring.c readline-6.2/search.c readline-6.2/shell.c readline-6.2/signals.c readline-6.2/terminal.c readline-6.2/text.c readline-6.2/tilde.c readline-6.2/undo.c readline-6.2/util.c readline-6.2/vi_keymap.c readline-6.2/vi_mode.c readline-6.2/xfree.c readline-6.2/xmalloc.c readline-6.2/history.c readline-6.2/histexpand.c readline-6.2/histfile.c readline-6.2/histsearch.c readline-6.2/patchlevel ./build.sh: line 41: patch: command not found ============ Building the readline library ============ ============ Building the readline extension module ============ running install running build running build_ext building 'readline' extension creating build creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/Modules creating build/temp.linux-x86_64-2.7/Modules/2.x gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I. -I/usr/include/python2.7 -c Modules/2.x/readline.c -o build/temp.linux-x86_64-2.7/Modules/2.x/readline.o -Wno-strict-prototypes creating build/lib.linux-x86_64-2.7 gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/Modules/2.x/readline.o readline/libreadline.a readline/libhistory.a -L/usr/lib64 -lncurses -lpython2.7 -o build/lib.linux-x86_64-2.7/readline.so gcc: error: readline/libreadline.a: No such file or directory gcc: error: readline/libhistory.a: 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-byUz9r/readline/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-4qfEGl-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip-build-byUz9r/readline Storing debug log for failure in /root/.pip/pip.log
看,我之前說“大概”的原因是我查看了我的其他 Centos 7 安裝(7.0.1406),我看到了同樣的事情。文件系統中不
lib{history,readline}.a
存在。現在我很困惑為什麼pip install readline
以前工作。
正如@steven-lu 評論中所述,作業系統中缺少更新檔,因此他的解決方案非常有效:
yum -y install patch