3

我希望在我的 Ubuntu 14.04 计算机上安装 ctypes。我正在尝试使用 opam 这样做,但它失败了。这是我得到的回应:-

opam install ctypes
The following actions will be performed:
  ∗  install conf-ncurses 1                   [required by ocamlfind]
  ∗  install ocamlfind    1.6.2               [required by ctypes]
  ∗  install base-bytes   base                [required by ctypes]
  ∗  install ctypes       0.5.1
===== ∗  4 =====
Do you want to continue ? [Y/n] Y

=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[ctypes] Archive in cache
[ocamlfind] Archive in cache

=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ERROR] The compilation of conf-ncurses failed at "pkg-config ncurses".

#=== ERROR while installing conf-ncurses.1 ====================================#
# opam-version 1.2.2
# os           linux
# command      pkg-config ncurses
# path         ~/.opam/4.02.1/build/conf-ncurses.1
# compiler     4.02.1
# exit-code    1
# env-file     ~/.opam/4.02.1/build/conf-ncurses.1/conf-ncurses-3089-ccabea.env
# stdout-file  ~/.opam/4.02.1/build/conf-ncurses.1/conf-ncurses-3089-ccabea.out
# stderr-file  ~/.opam/4.02.1/build/conf-ncurses.1/conf-ncurses-3089-ccabea.err



=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following actions were aborted
  ∗  install base-bytes base 
  ∗  install ctypes     0.5.1
  ∗  install ocamlfind  1.6.2
The following actions failed
  ∗  install conf-ncurses 1
No changes have been performed

=-=- conf-ncurses.1 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext conf-ncurses.1' may help you find the correct installation for your system.

我已经安装了依赖项,但仍然无法安装 ncurses。

~$ opam depext conf-ncurses.1
# Detecting depexts using flags: x86_64 linux ubuntu
# The following system packages are needed:
#  - ncurses-dev
#  - pkg-config
# The following new OS packages need to be installed: ncurses-dev
Not running as root, the following command will be run through "sudo":
    apt-get install -qq -yy ncurses-dev
[sudo] password for ask: 
# OS packages installation successful

我想知道为什么我会遇到这些问题,ncurses-dev 和 pkg-config 已经安装在我的系统上。

Tobias 执行建议的更新:-

# Detecting depexts using flags: x86_64 linux ubuntu
# The following system packages are needed:
#  - m4
#  - ncurses-dev
#  - pkg-config
# The following new OS packages need to be installed: ncurses-dev
Not running as root, the following command will be run through "sudo":
    apt-get install -qq -yy ncurses-dev
# OS packages installation successful
The following actions will be performed:
  ∗  install conf-pkg-config 1.0              [required by ctypes]
  ∗  install conf-m4         1                [required by ocamlfind]
  ∗  install conf-ncurses    1                [required by ocamlfind]
  ∗  install ocamlfind       1.6.2            [required by ctypes]
  ∗  install base-bytes      base             [required by ctypes]
  ∗  install ctypes          0.5.1
===== ∗  6 =====
Do you want to continue ? [Y/n] Y

=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ctypes] Archive in cache
[ocamlfind] Archive in cache

=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
∗  installed conf-pkg-config.1.0
∗  installed conf-m4.1
[ERROR] The compilation of conf-ncurses failed at "pkg-config ncurses".

#=== ERROR while installing conf-ncurses.1 ====================================#
# opam-version 1.2.2
# os           linux
# command      pkg-config ncurses
# path         ~/.opam/4.03.0/build/conf-ncurses.1
# compiler     4.03.0
# exit-code    1
# env-file     ~/.opam/4.03.0/build/conf-ncurses.1/conf-ncurses-10261-9b8556.env
# stdout-file  ~/.opam/4.03.0/build/conf-ncurses.1/conf-ncurses-10261-9b8556.out
# stderr-file  ~/.opam/4.03.0/build/conf-ncurses.1/conf-ncurses-10261-9b8556.err



=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following actions were aborted
  ∗  install base-bytes base 
  ∗  install ctypes     0.5.1
  ∗  install ocamlfind  1.6.2
The following actions failed
  ∗  install conf-ncurses 1
The following changes have been performed
  ∗  install conf-m4         1  
  ∗  install conf-pkg-config 1.0

=-=- conf-ncurses.1 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing.
   `opam depext conf-ncurses.1' may help you find the correct installation for
   your system.

The former state can be restored with:
    opam switch import "~/.opam/4.03.0/backup/state-20160410155208.export"

错误文件中仍然没有文本。

谢谢。

4

3 回答 3

1

当您处理此类错误时,您可以通过查看 opam 指出的错误文件中的整个错误来获得更多详细信息,该文件位于此处:

cat /home/ask/.opam/4.02.1/build/conf-ncurses.1/conf-ncurses-3089-ccabea.err

请注意,您在这里也有经典输出:

cat /home/ask/.opam/4.02.1/build/conf-ncurses.1/conf-ncurses-3089-ccabea.out

您可能有其他信息可以让您结束安装。有时depext命令中会忘记一些部门。

PS:我写在这里是因为我没有足够的声誉来要求评论的准确性

于 2016-05-07T19:44:19.723 回答
0

尝试以下操作:

$ apt-get install libncurses5-dev
$ pkg-config --print-provides ncurses

验证两者ncursespkg-config均已安装并正常工作。

进一步诊断:

$ dpkg-query -L libncurses5-dev | grep pc$

# results for my machine
/usr/lib/x86_64-linux-gnu/pkgconfig/form.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/ncurses++.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/panel.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/ncurses.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/menu.pc

$ pkg-config --variable pc_path pkg-config

# results for my machine
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

请注意,libncurses5-dev已将其ncurses.pc文件安装在pkg-config的默认搜索路径中的目录中。

如果您的系统不是这样,请尝试$PKG_CONFIG_PATH显式设置以指向 where libncurses5-devhas installed ncurses.pc。(还要检查文件是否确实存在!)

这个讨论也可能有帮助:https ://askubuntu.com/questions/210210/pkg-config-path-environment-variable/373217

于 2016-05-11T07:30:53.260 回答
0

在我的系统中,如果我添加

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/

然后执行

opam install conf-ncurses

有用

于 2016-08-09T10:52:14.487 回答