Perché l'installazione di Caffe tramite Macports installa porte non correlate?

0

Quando installi la porta Caffe da Macports, tenta anche di installare libgcc-devel , che richiede ore per essere compilato. Curiosamente, non sono riuscito a capire quale dipendenza abbia bisogno di questo. Ho corso

port rdeps Caffe

e fuori è arrivato questo (riassunto: non c'è libgcc-devel in là):

The following ports are dependencies of caffe @20150717_0+cpu+openblas+python27:
  google-glog
    gflags
  protobuf-cpp
    autoconf
      xz
        libiconv
          gperf
        gettext
          expat
          ncurses
    automake
    libtool
    zlib
  leveldb
    snappy
      lzo2
  lmdb
  boost
    bzip2
    icu
    python27
      openssl
      sqlite3
        libedit
      db48
      python_select
      python2_select
  hdf5
  opencv
    unzip
    cmake
      curl
        pkgconfig
        curl-ca-bundle
          perl5
            perl5.16
              gdbm
      libarchive
        libxml2
    libpng
    jpeg
    jasper
    tiff
    ilmbase
      gsed
    openexr
    ffmpeg
      gmake
      texinfo
        help2man
          perl5.22
          p5.22-locale-gettext
      libvpx
        yasm
      lame
      libvorbis
        libogg
      libopus
      libtheora
      libmodplug
      schroedinger
        orc
          coreutils
            gmp
      libass
        fribidi
          glib2
            libffi
        fontconfig
          freetype
        enca
      libbluray
      gnutls
        libidn
        libtasn1
        p11-kit
          desktop-file-utils
            popt
          libxslt
        nettle
      openjpeg15
        lcms2
        jbigkit
      speex
      libsdl
        xorg-libXext
          xorg-util-macros
          xorg-libX11
            xorg-xtrans
            xorg-bigreqsproto
            xorg-xcmiscproto
            xorg-xextproto
            xorg-xf86bigfontproto
            xorg-inputproto
            xorg-libXdmcp
              xorg-xproto
            xorg-libXau
            xorg-libxcb
              xorg-xcb-proto
              xorg-libpthread-stubs
            xorg-kbproto
        xorg-libXrandr
          xrender
            xorg-renderproto
          xorg-randrproto
      xorg-libXfixes
        xorg-fixesproto
      XviD
      x264
  szip
  OpenBLAS
    dragonegg-3.4-gcc-4.8
      llvm-3.4
        llvm_select
      gcc48
        cctools
          libunwind-headers
          llvm-3.5
            libcxx
        cloog
          isl
        ld64
          ld64-latest
            dyld-headers
            libmacho-headers
        libgcc
          libmpc
            mpfr
        gcc_select
  py27-cython
    cython_select
  py27-numpy
    gcc49
    fftw-3
    py27-nose
      py27-setuptools
      nosetests_select
  py27-scipy
    swig-python
      bison
        m4
        bison-runtime
      swig
        pcre
  py27-scikit-image
    py27-six
    py27-matplotlib
      qhull
      py27-dateutil
        py27-tz
      py27-parsing
      py27-pyobjc-cocoa
        py27-pyobjc
          py27-py2app
            py27-macholib
              py27-modulegraph
                py27-altgraph
      py27-tornado
        py27-backports-ssl_match_hostname
          py27-backports
        py27-certifi
      py27-tkinter
        tk
          tcl
      py27-cairo
        cairo
          libpixman
          xorg-xcb-util
    py27-networkx
      py27-decorator
    py27-Pillow
      lcms
      webp
      openjpeg
  py27-scikit-learn
  py27-ipython
    gzip
    py27-readline
    py27-scientific
      netcdf
    py27-zmq
      zmq
    py27-jinja2
      py27-markupsafe
    py27-requests
    py27-sphinx
      py27-docutils
        py27-roman
      py27-alabaster
      py27-babel
      py27-pygments
      py27-snowballstemmer
      py27-sphinx_rtd_theme
      sphinx_select
    py27-jsonschema
      py27-vcversioner
      py27-functools32
    py27-mistune
    ipython_select
  py27-h5py
    py27-pkgconfig
  py27-pandas
    py27-tables
      py27-numexpr
      blosc
    py27-bottleneck
  py27-protobuf
    py27-gflags
  py27-leveldb
  wget

Esecuzione

port rdeps --full caffe

elenca libgcc più volte, ma non libgcc-devel .

Quindi come mai questa porta installa libgcc-devel sebbene non dipenda da questo?

    
posta oarfish 24.07.2015 - 16:07
fonte

2 risposte

0

libgcc-devel (la versione pre-release di libgcc , installata ad es. quando si installa gcc6 ) è in conflitto con e sostituisce (almeno nel mio caso) il normale libgcc . Le porte che dipendono da queste ultime usano invece la prima, quindi qualsiasi dipendenza su libgcc diventa una su libgcc-devel . Per questo motivo, è stato necessario libgcc-devel per creare caffe sul mio sistema.

Vedi il ticket: link

    
risposta data 31.07.2015 - 10:16
fonte
2

L'esecuzione di port info libgcc-devel dichiara che è proprio quello che ci si aspetterebbe: una beta libgcc pre-release che, allo stesso modo come ci si aspetterebbe, è in conflitto con la versione attuale di libgcc.

Non posso fare a meno di credere che l'installazione di -devel che hai sperimentato non sia stata intenzionale. Questo è il motivo: sebbene sia già abbastanza improbabile che gli sviluppatori di Caffe includano una beta pre-release nella catena di dipendenze del loro prodotto, e mentre tale prospettiva diventa tanto più improbabile quando rdeps non incontra libgcc-devel, è chiaramente ridicolo credere che il caffè rischierebbe di entrare in collisione con la vera raccolta di compilatori GNU.

Non molto tempo fa, tuttavia ho dimenticato il progetto, autotools (autoconf, automake) ha interpretato erroneamente i kernel di OS X 10.10 come versioni 10.1 e configurato le loro build per quell'ambiente.

Che cosa ottieni quando esegui port rdependents libgcc-devel ? Hai aperto un biglietto? Analizzato il makefile?

    
risposta data 25.07.2015 - 06:20
fonte

Leggi altre domande sui tag