2014-07-19 45 views
2

如何在Ubuntu 14.04上使用Haskell進行Web設置?在Ubuntu 14.04上安裝Haskell進行Web開發

我讀過一堆教程,沒有任何工作。我在教程中取得一半的成績,而終端上的某些內容卻慘遭失敗,導致我不得不花費數小時尋找解決方案,以便回到我離開的地方。

是否只有一些二進制文件可用於在Linux上安裝所有文件?我無法在軟件中心找到它。

回答

5

使用Haskell Platform

sudo apt-get install haskell-platform 

對於Web開發,我使用Yesod quick start描述的方法,只有我做一個cabal sandbox

cabal update 
cabal sandbox init 
cabal install happy alex yesod-platform yesod-bin --max-backjumps=-1 --reorder-goals 
export PATH=.cabal-sandbox/bin/:$PATH 
yesod devel 
+0

我起身,我做點'cabal sandbox init'並且失敗。照常。有沒有另一種方式來設置哈斯克爾沒有使用一些沙箱或..我只是想安裝語言/ SDK或任何和使用文本編輯器來編寫代碼。 –

+4

@Aeron「失敗」不是很具描述性。安裝haskell平臺是獲取haskell最簡單的方法。如果你願意,你可以嘗試從源代碼構建[ghc](http://www.haskell.org/ghc/),或者爲你的系統找到二進制文件。要做的最簡單的事情可能是將您的錯誤作爲SO發佈。 – user2407038

+0

對不起,我有一種習慣,忘記在發帖之前完成我之前說的話。當它失敗時,它會顯示cabal sandbox init - command not found。我已經下載並安裝了hiwever平臺,只要我嘗試運行它所說的命令找不到的命令。 –

2

另一個方法是通過尼克斯包管理器安裝耶索德。

安裝尼克斯(http://nixos.org/nix/download.html):

bash <(curl https://nixos.org/nix/install) 

安裝耶索德和一些工具:

nix-env -iA nixpkgs.haskellPackages.{hjsmin,persistentSqlite,yesod,yesodBin,yesodStatic,cabalInstall,ghc} 

創建一個骨架項目:

yesod init 

然後啓動它:

[email protected]:~/foo$ yesod devel 
Yesod devel server. Press ENTER to quit 
Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal 
update' to download it. 
Resolving dependencies... 
Configuring foo-0.0.0... 
Forcing recompile for ./Model.hs because of config/models 
Forcing recompile for ./Foundation.hs because of config/routes 
Forcing recompile for ./Foundation.hs because of messages/en.msg 
Forcing recompile for ./Foundation.hs because of templates/default-layout-wrapper.hamlet 
Forcing recompile for ./Foundation.hs because of templates/default-layout.hamlet 
Forcing recompile for ./Handler/Home.hs because of templates/homepage.hamlet 
Forcing recompile for ./Handler/Home.hs because of templates/homepage.julius 
Forcing recompile for ./Handler/Home.hs because of templates/homepage.lucius 
Rebuilding application... (using cabal) 
Starting development server... 
Starting devel application 
Devel application launched: http://localhost:3000 
Migrating: CREATE TABLE "user"("id" INTEGER PRIMARY KEY,"ident" VARCHAR NOT NULL,"password" VARCHAR NULL,CONSTRAINT "unique_user" UNIQUE ("ident")) 
Migrating: CREATE TABLE "email"("id" INTEGER PRIMARY KEY,"email" VARCHAR NOT NULL,"user" INTEGER NULL REFERENCES "user","verkey" VARCHAR NULL,CONSTRAINT "unique_email" UNIQUE ("email")) 
20/Jul/2014:13:19:30 +0300 [Debug#SQL] "CREATE TABLE \"user\"(\"id\" INTEGER PRIMARY KEY,\"ident\" VARCHAR NOT NULL,\"password\" VARCHAR NULL,CONSTRAINT \"unique_user\" UNIQUE (\"ident\"))" [] @(persistent-1.3.1.1:Database.Persist.Sql.Raw ./Database/Persist/Sql/Raw.hs:38:5) 
20/Jul/2014:13:19:30 +0300 [Debug#SQL] "CREATE TABLE \"email\"(\"id\" INTEGER PRIMARY KEY,\"email\" VARCHAR NOT NULL,\"user\" INTEGER NULL REFERENCES \"user\",\"verkey\" VARCHAR NULL,CONSTRAINT \"unique_email\" UNIQUE (\"email\"))" [] @(persistent-1.3.1.1:Database.Persist.Sql.Raw ./Database/Persist/Sql/Raw.hs:38:5) 
0

你的問題是你有舊的Cabal(版本1.16。*),它包含在Ubuntu 14.04中。你應該升級Cabal。我可以看到以下選項:

1)將整個Ubuntu升級到14.10。你會得到Cabal版本1.20。*。

2)如果你還沒有準備好完整的操作系統升級,只有升級驚天動地:

2.1)暫時添加以下行至/etc/apt/sources.list

deb http://no.archive.ubuntu.com/ubuntu/ utopic universe 

2.2)執行命令

sudo apt-get update 
sudo apt-get install cabal-install 

2.3)刪除添加到步驟2.1中的/etc/apt/sources.list的行。

2.4)執行命令

sudo apt-get update 

2.5)檢查您的陰謀升級:

cabal --version 

你應該得到:

cabal-install version 1.20.0.3 
using version 1.20.0.2 of the Cabal library