¿Por qué la instalación de Caffe a través de Macports instala puertos no relacionados?

0

Al instalar el puerto Caffe desde Macports, también intenta instalar libgcc-devel , lo que demora horas en construirlo. Curiosamente, no pude averiguar qué dependencia necesita esto. Yo corri

port rdeps Caffe

y salió esto (resumen: no hay libgcc-devel ahí):

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

En ejecución

port rdeps --full caffe

muestra libgcc varias veces, pero no libgcc-devel .

Entonces, ¿cómo es que este puerto instala libgcc-devel aunque no depende de él?

    
pregunta oarfish 24.07.2015 - 16:07

2 respuestas

0

libgcc-devel (la versión de prelanzamiento de libgcc , instalada, por ejemplo, al instalar gcc6 ) entra en conflicto con y reemplaza (al menos en mi caso) el libgcc normal. Los puertos que dependen de este último utilizarán el primero, por lo que cualquier dependencia de libgcc se convertirá en uno en libgcc-devel . Por este motivo, se requirió libgcc-devel para compilar caffe en mi sistema.

Vea el ticket: enlace

    
respondido por el oarfish 31.07.2015 - 10:16
2

Ejecutar port info libgcc-devel declara que es justo lo que uno esperaría: una versión preliminar de libgcc beta que, al igual que uno esperaría, está en conflicto con la versión actual de libgcc.

No puedo dejar de creer que la instalación de -devel que experimentaste fue involuntaria. Esta es la razón por la que: si bien ya es bastante improbable que los desarrolladores de Caffe incluyan una versión preliminar de beta en la cadena de dependencia de su producto, y si bien esa posibilidad se vuelve más improbable cuando rdeps no encuentra libgcc-devel, es claramente ridículo creer que Caffe correría el riesgo de colisionar con la verdadera colección de compiladores GNU.

No hace mucho, sin embargo, me olvido del proyecto, autotools (autoconf, automake) malinterpretó los kernels OS X 10.10 como versiones 10.1 y configuró sus compilaciones para ese entorno.

¿Qué obtienes cuando ejecutas port rdependents libgcc-devel ? ¿Has abierto un ticket? Analizado el makefile?

    
respondido por el Doc G. 25.07.2015 - 06:20

Lea otras preguntas en las etiquetas