代码之家  ›  专栏  ›  技术社区  ›  7stud

混合部门获取:Hex安装到错误的灵丹妙药版本中

  •  1
  • 7stud  · 技术社区  · 6 年前

    这是我第一次使用命令:

    $ mix deps.get
    

    这是输出:

    Could not find Hex, which is needed to build dependency :ecto
    Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] Y
    * creating /Users/7stud/.kiex/mix/archives/elixir-1.4.1/hex-0.18.1
    Resolving Hex dependencies...
    Dependency resolution completed:
    New:
      connection 1.0.4
      db_connection 1.1.3
      decimal 1.5.0
      ecto 2.2.10
      poolboy 1.5.1
      postgrex 0.13.5
    * Getting ecto (Hex package)
    * Getting postgrex (Hex package)
    * Getting connection (Hex package)
    * Getting db_connection (Hex package)
    * Getting decimal (Hex package)
    * Getting poolboy (Hex package)
    
    
    ~/elixir_programs/friends$ iex
    Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
    
    Interactive Elixir (1.6.6) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)> 
    
    ^C$ which iex
    /Users/7stud/.asdf/shims/iex
    
    $ which elixir
    /Users/7stud/.asdf/shims/elixir
    
    $ asdf current
    elixir         1.6.6   (set by /Users/7stud/.tool-versions)
    erlang         20.3    (set by /Users/7stud/.tool-versions)
    
    $ asdf list elixir
    1.6.6
    
    $ asdf list erlang
    20.3
    

    我安装了 otp 20.3 elixir 1.6.6 asdf 程序包管理器:

    ^C$ which iex
    /Users/7stud/.asdf/shims/iex
    
    $ which elixir
    /Users/7stud/.asdf/shims/elixir
    
    $ asdf current
    elixir         1.6.6   (set by /Users/7stud/.tool-versions)
    erlang         20.3    (set by /Users/7stud/.tool-versions)
    
    $ asdf list elixir
    1.6.6
    
    $ asdf list erlang
    20.3
    

    $ elixir -v
    Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
    
    Elixir 1.6.6 (compiled with OTP 19)
    

    那么Hex安装程序是如何找到长生不老药1.4.1的呢?

    如果我把我的 .bash_profile 安装 asdf shims ,然后我打开一个新的终端窗口,这是我得到的:

    ~$ which elixir
    /Users/7stud/.kiex/elixirs/elixir-1.4.1/bin/elixir
    
    ~$ which mix
    /Users/7stud/.kiex/elixirs/elixir-1.4.1/bin/mix
    ~$ 
    

    我在谷歌上搜索 .kiex ,看起来我一定安装了 kiex 在某种程度上是长生不老药的版本管理器。

    我也有一些台词 .bash_配置文件 安装的 基克斯 垫片。我把台词注释掉了 基克斯 并取消了 我又试着打开了一个新的窗口:

    $mix deps.get 
    Could not find Hex, which is needed to build dependency :ecto
    Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] Y
    * creating /Users/7stud/.asdf/installs/elixir/1.6.6/.mix/archives/hex-0.18.1
    Resolving Hex dependencies...
    Dependency resolution completed:
    Unchanged:
      connection 1.0.4
      db_connection 1.1.3
      decimal 1.5.0
      ecto 2.2.10
      poolboy 1.5.1
      postgrex 0.13.5
    All dependencies up to date
    

    成功。

    下一个问题:

    ~/elixir_programs/friends$ mix exto.gen.repo -r Friends.Repo
    ==> connection
    Compiling 1 file (.ex)
    Generated connection app
    ==> friends
    Could not find "rebar", which is needed to build dependency :poolboy
    I can install a local copy which is just used by Mix
    Shall I install rebar? (if running non-interactively, use "mix local.rebar --force") [Yn] 
    

    但是,在另一个终端窗口中:

    $ which rebar
    /usr/local/bin/rebar
    
    ~$ rebar --version
    rebar 2.6.4 19 20170625_072305 git 2.6.4-6-g2a52f60
    
    ~$ which rebar3
    /usr/local/bin/rebar3
    
    ~$ rebar3 --version
    rebar 3.0.0-beta.4+build.3189.ref21ae314 on Erlang/OTP 20 Erts 9.3
    

    那么,为什么mix找不到我的钢筋呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Adam Millerchip    6 年前

    从你的评论看来 kiex 与冲突 asdf .

    基克斯 从你的 .bash_profile ,以及 asdf公司 垫片应正常工作。