2013-12-23 96 views
9

我試圖通過真實世界OCaml書籍學習OCaml。他們有一個我應該安裝Core軟件包和utop的指南。然而,雖然我似乎使用Opam成功安裝了這兩個,但是當我嘗試使用它們時,它們都不起作用。OCaml:安裝後無法運行utop

我知道他們正在安裝,因爲當我嘗試重新安裝它們,我得到這個消息:

$ opam install utop core 
[NOTE] Package utop is already installed (current version is 1.10). 
[NOTE] Package core is already installed (current version is 109.55.02). 

然而,當我試圖進入「UTOP」開始UTOP,這不是」工作。

$ utop 
bash: utop: command not found 

同樣,當我嘗試打開核心:

​​

這是怎麼回事?我是編程新手,所以可能會有一些關於安裝的問題,我只是不理解。

+0

你可以嘗試在終端執行這個:eval \'opam config env \' – Kakadu

+0

我試過這個,但由於某種原因它沒有工作。請參閱下面的答案。 – akim330

+0

重新打開終端爲我工作,安裝Opam會對.bashrc進行更改,這需要重新啓動bash。 – kristianp

回答

9

關於utop,看起來你沒有在你的$PATH。你做:

$ eval `opam config env` 

如果你想OPAM是正確自動安裝在您的新殼,你應該添加下列到您的.bashrc

. ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true 

至於未能打開Core.Std,你當然不能在你的shell中打開它,這個命令必須在utop中發佈。

+0

仍似乎沒有工作。請參閱下面的答案,以查看在輸入eval'opam config env'時返回的代碼。也許這將提供一些見解?感謝您的迴應! – akim330

+1

爲我工作!謝謝。 – DCS

0

所以,我沒有嘗試的eval「OPAM配置ENV」,這是發生了什麼:

$ eval 'opam congif env' 
CAML_LD_LIBRARY_PATH="/home/jharvard/.opam/4.01.0/lib/stublibs"; export CAML_LD_LIBRARY_PATH; 
PERL5LIB="/home/jharvard/.opam/4.01.0/lib/perl5"; export PERL5LIB; 
OCAML_TOPLEVEL_PATH="/home/jharvard/.opam/4.01.0/lib/toplevel"; export OCAML_TOPLEVEL_PATH; 
MANPATH="/home/jharvard/.opam/4.01.0/man:"; export MANPATH; PATH="/home/jharvard/.opam/4.01.0/bin:/etc/log50.d:/etc/log50.d:/usr/lib/qt-3.3/bin:/etc/log50.d:/usr/libexec/lightdm:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jharvard/.local/bin:/home/jharvard/bin"; export PATH; 

然後它仍然說,「UTOP」命令不被發現。上面的路徑對我來說是胡言亂語。任何人都可以看看它返回的內容是否表明問題可能是什麼?

+4

您的報價字符錯誤。你需要像信中的一樣。它位於我的鍵盤附近'1'按鈕 – Kakadu

+0

Doh。就是這樣。我不知道那個角色是否存在。非常感謝! – akim330

+0

快樂的露營:) – Kakadu

3

在Ubuntu的大多數在線資源中安裝OCaml utop的方法看起來像是一種誤導用戶。在使用sudo apt-get命令安裝opam時,不需要使用相同的命令再次安裝OCaml,因爲OCaml附帶了opam安裝。所以你唯一需要做的就是正確地初始化你的home文件夾中定義OPAM根的opam狀態。

因此,如果您先安裝了任何OCaml,請先移除它們以避免衝突。

sudo apt-get purge --auto-remove ocaml-source 
sudo apt-get purge opam 

然後安裝opam。

sudo add-apt-repository ppa:avsm/ppa 
sudo apt-get update 
sudo apt-get install opam 

初始化OPAM

opam init 

的狀態,如果它顯示了一個依賴失蹤警告試試這個命令,

opam install depext 
opam depext conf-m4.1 

然後驗證ocaml的安裝,

eval 'opam config env' 
ocaml 

安裝UTOP然後,

opam install utop 
eval `opam config env` 
utop 

詳細信息和處理錯誤,請參閱本blog post