2016-03-23 10 views
0

Tüm bağımlılıkları almayı ve yerel makinemde riak_ensemble çalıştırmayı hedefliyorum. Ben inşaat demiri get-Deps çalıştırdığınızda Ancak, hep karşılaşmak:HATA: Bağımlılık dir/riak/riak_ensemble_demo/deps/mürekkepbalığı/deps/neotoma; version_mismatch

Cloning into 'neotoma'... ERROR: Dependency dir /home/project/riak/riak_ensemble_demo/deps/cuttlefish/deps/neotoma failed application validation with reason: {version_mismatch,{"/home/agung/project/riak/riak_ensemble_demo/deps/cuttlefish/deps/neotoma/src/neotoma.app.src", 
        {expected,"1.7.3"}, 
        {has,"1.7.2-9-g2f2b8e6"}}}. 

hata neotoma bir sürümünü işaret ediyor. Mesele şu ki, neotomanın kendi deposunda bu versiyonu var. İşte deponun screenshoot var:

enter image description here

burada mürekkepbalığı benim rebar.config dosyasıdır

{require_otp_vsn, "R16|17|18"}. 

{erl_opts, [warnings_as_errors, {parse_transform, lager_transform}, debug_info, warn_untyped_record]}. 

{eunit_opts, [verbose]}. 
{cover_enabled, true}. 

{escript_emu_args, "%%! -escript main cuttlefish_escript -smp disable +A 0\n"}. 
{escript_incl_apps, [goldrush, getopt, lager]}. 

{xref_checks, []}. 
{xref_queries, [{"(XC - UC) || (XU - X - B - \"(rebar.*|mustache)\" : Mod)", []}]}. 

{deps, [ 
    {getopt, ".*", {git, "git://github.com/jcomellas/getopt.git", {tag, "v0.8.2"}}}, 
    {lager, "(2.0|2.1|2.2).*", {git, "git://github.com/basho/lager.git", {tag, "2.2.0"}}}, 
    {neotoma, "1.7.3", {git, "git://github.com/seancribbs/neotoma.git", {tag, "1.7.3"}}} 
    ]}. 

{post_hooks, [ 
    {"-win32", compile, "rebar escriptize"}, 
    {"^((?!-win32).)*$", compile, "./rebar escriptize"} 
    ]}. 

[GÜNCELLENDİ] Bu riak_ensemble_demo

{erl_opts, [debug_info, 
      warnings_as_errors, 
      {parse_transform, lager_transform}]}. 

{deps, [{lager, "2.0.3", {git, "git://github.com/basho/lager.git", {tag, "2.0.3"}}}, 
     {riak_ensemble, ".*", {git, "git://github.com/basho/riak_ensemble", {branch,"develop"}}}]}. 

benim rebar.config olduğunu Ve gereken tüm bağımlılıkları yerine getirmek için rebar get-deps'u çalıştırıyorum.

Bu bağımlılığı nasıl yerine getiririm? Teşekkürler!

+0

Anladığım kadarıyla 'mürekkepbalığı' bir rebar.config./Home/project/riak/riak_ensemble_demo'dan bize rebar.config dosyasını gösterebilir ve uygulamanızı nasıl geliştirirsiniz? –

+0

Merhaba @P_A, Soruyu güncelledik. – indi60

cevap

1

Temel olarak her bir projenin kendi bağımlılıklarını belirttiği kendi rebar.config dosya vardır. Bu durumda, bir uygulama diğerine göre neotoma farklı bir sürümü gerektirir gibi görünüyor. Bu gibi sorunların üstesinden gelmenin en basit yolu, hesabınıza "çatal" (Github özelliği) olan depoları ve bağımlılıkları düzeltmektir. Ardından başvurunuzu, sahibinin değil, deponuzun kopyasından uygulama gerektirecek şekilde güncellersiniz. Sorunu düzelttikten sonra, değişikliklerinizi kendi kodlarına dahil edebilmek için orijinal depo sahibine bir çekme isteği (başka bir Github özelliği) gönderebilirsiniz.

Büyük olasılıkla bu sorunu düzeltmek için gerekli olan tüm depoları "çatallamak" istemezsiniz. desp klasörüne gidin ve tüm rebar.config dosyaları kontrol:

cd ~/myproject/deps 
find . -name rebar.config -exec grep -Hw neotoma \{\} \; 

Bu, neotoma ve gerekli olduğu sürümlerini gerektiren uygulamaların bir listesini verir. Bu uygulama muhtemelen "çatallı" ve düzeltilmesi gerekir.

+0

Beklenen sürüm zaten varsa bağımlılıkları nasıl düzeltirim? Ekran görüntüsünü gerekli olan bağımlılıkları ekliyorum. Bunu zaten 1.7.3 etiketinde görüyorum. – indi60

+0

Bu durumda sürüm otomatik olarak git tarafından oluşturulur, bkz. Https://github.com/seancribbs/neotoma/blob/1.7.3/src/neotoma.app.src ve git üretir '{vsn, git}' 1.7.2-9-g2f2b8e6' (bu oldukça aptalca değil mi?) Daha iyi araçlar var, eminim. Ancak, eh, yine de, 'vsn' doğru sürüm olarak düzeltin, burada olduğu gibi: https://github.com/yoonka/builderl/blob/master/src/builderl.app.src Ve ayrıca, sizden klonlanıyorsunuz bir etiket, bir dal değil. Bu değişikliği yaptıktan sonra bağımlılığın bir daldan klonlanması gerekecek ya da değişikliğiniz için yeni bir etiket oluşturmanız gerekecektir. – Amiramix

+1

Ya da alternatif olarak, ilgili 'rebar.config' dosyasında '1.7.3' yerine oluşturulan 1.7.2-9-g2f2b8e6 'sürümünü kullanarak bu bağımlılığı dahil edin. – Amiramix