2016-12-15 57 views
2

我對elixir和phoenix(以及ubuntu)頗爲陌生,並且一直在努力讓自己與Web開發一起運行。 在創建使用mix deps.get失敗(依賴項問題)

mix phoenix.new webapp 

我從終端

Fetch and install dependencies? [Yn] y 
* running mix deps.get 
* error command failed to execute, please run the following command again after installation: "mix deps.get" 
* running npm install && node node_modules/brunch/bin/brunch build 
* error command failed to execute, please run the following command again after installation: "npm install && node node_modules/brunch/bin/brunch build" 

以下誤差的新鳳應用程序和運行時mix deps.get

所得錯誤消息是

** (Mix) No package with name phoenix_ecto (from: mix.exs) in registry 

我當談到我們時,我們仍然很新在這個平臺上,所以我不完全確定如何在註冊表中下載/獲取/放置/下載phoenix_ecto包。 從我理解這一切都是由十六進制包管理器處理。

我確實設法在幾天前啓動並運行了phoenix,並且開發了一些小型測試應用程序。 但它似乎在我魯莽的終端sudoing某處我設法打破某些地方的東西。

一些額外的信息

Elixir 1.3.4 
Mix 1.3.4 
npm 3.5.2 
node v4.2.6 
Phoenix v1.2.1 

如果任何其他信息,需要我會很樂意提供!

+0

這是一個奇怪的錯誤。是的phoenix_ecto應該由十六進制來處理。如果我是你,我會嘗試直接添加依賴到你的混音文件,如果它不在那裏。像這樣:{:phoenix_ecto,「〜> 3.1.0-rc.0」} –

+0

我檢查了我的mix.exs文件,並且依賴關係已經是{:phoenix_ecto,「〜> 3.0」} –

回答

1

我設法通過解鎖依賴關係並更新它們來解決錯誤。 下面的命令。

mix deps.unlock --all 
mix deps.update --all 

現在項目創建並沒有問題。 希望這可以幫助別人。

編輯1:

如果以上不工作,有一個十六進制安裝已損壞的可能性。這是我原來的帖子後一週左右的情況。可以通過刪除十六進制並重新安裝來修復。

rm -rf ~/.mix/archives/hex-0.15.0 
mix local.hex 

你的十六進制版本可能與我的不同。

hex-0.xx.x 
+0

我剛剛提出建議確保你的依賴關係全部解鎖。很高興你自己找到了。 –

0

這可能會出現在幾種情況下。首先檢查你的mix.exs deps部分。確保phoenix_ecto放置正確的版本和選擇。此外,您需要從本地剛剛克隆回購中檢查phoenix_ecto,並在您的項目中設置{:phoenix_ecto, path: "..."}。嘗試編譯本地。如果編譯本地並且不在彙編中檢查phoenix_ecto mix.exs文件和defp package方法,並確保返回列表與mix.exs [_, .., file: ~w{mix.exs}, _]

這個問題通常與mix.exs有關。