无法安装 jpeg,因为冲突的端口处于活动状态:libjpeg-turbo



我在尝试使用Mac端口安装vsftpd时遇到了libjpeg-turbo问题。我运行的是OS X 10.10.5。

David-Laxers-MacBook-Pro:phoenix_pipeline davidlaxer$ conda -V
conda 3.16.0
David-Laxers-MacBook-Pro:phoenix_pipeline davidlaxer$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
David-Laxers-MacBook-Pro:phoenix_pipeline davidlaxer$ 
    David-Laxers-MacBook-Pro:phoenix_pipeline davidlaxer$ port -v
MacPorts 2.3.3
sudo port install vsftpd
Password:
--->  Fetching archive for vsftpd
--->  Attempting to fetch vsftpd-3.0.2_1.darwin_14.x86_64.tbz2 from http://packages.macports.org/vsftpd
--->  Attempting to fetch vsftpd-3.0.2_1.darwin_14.x86_64.tbz2.rmd160 from http://packages.macports.org/vsftpd
--->  Installing vsftpd @3.0.2_1
--->  Activating vsftpd @3.0.2_1
To configure vsftpd edit /opt/local/etc/vsftpd.conf.
--->  Cleaning vsftpd
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  Found 99 broken file(s), matching files to ports   
--->  Found 14 broken port(s), determining rebuild order
--->  Rebuilding in order
     tiff @4.0.4 
     gd2 @2.1.1 +x11
     ghostscript @9.16 +x11
     djvulibre @3.5.27 
     webp @0.4.3 
     jasper @1.900.1 
     gdk-pixbuf2 @2.31.6 +x11
     opencv @3.0.0 
     lcms @1.19 
     libmng @1.0.10 
     netpbm @10.71.02 +x11
     lcms2 @2.7 
     ImageMagick @6.9.0-0 +x11
     poppler @0.35.0 
Error: Unable to exec port: Can't install jpeg because conflicting ports are active: libjpeg-turbo
Error rebuilding tiff
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 395)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_target" line 96)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {
    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 5268)

今天早些时候,我在python鹅上遇到了类似的问题:

David-Laxers-MacBook-Pro:python-goose davidlaxer$ anaconda search -t conda libjpg
Traceback (most recent call last):
 File "/users/davidlaxer/anaconda/bin/anaconda", line 6, in <module>
   sys.exit(main())
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/scripts/cli.py", line 94, in main
   description=__doc__, version=version)
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/scripts/cli.py", line 60, in binstar_main
   add_subparser_modules(parser, sub_command_module, 'conda_server.subcommand')
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/clyent/__init__.py", line 117, in add_subparser_modules
   for command_module in get_sub_commands(module):
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/clyent/__init__.py", line 106, in get_sub_commands
   this_module = __import__(module.__package__ or module.__name__, fromlist=names)
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/commands/notebook.py", line 13, in <module>
   from binstar_client.utils.notebook import Uploader, Downloader, parse, notebook_url, has_environment
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/utils/notebook/__init__.py", line 10, in <module>
   from .uploader import *
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/utils/notebook/uploader.py", line 7, in <module>
   from .data_uri import data_uri_from
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/binstar_client/utils/notebook/data_uri.py", line 10, in <module>
   from PIL import Image
 File "/Users/davidlaxer/anaconda/lib/python2.7/site-packages/PIL/Image.py", line 63, in <module>
   from PIL import _imaging as core
ImportError: dlopen(/Users/davidlaxer/anaconda/lib/python2.7/site-packages/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
 Referenced from: /Users/davidlaxer/anaconda/lib/python2.7/site-packages/PIL/_imaging.so
 Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0

Continuum Analytics给了我以下指示(解决了"鹅"问题(:

conda install -f pillow jpeg
I was unable to find any details of a jpeg package that has _imaging.so 13. My suggestion from here may be to reinstall goose. I did so by the following. first download the zip from https://github.com/grangier/python-goose and run the following individually.
conda create -n goose python=2.7 anaconda-client pillow lxml cssselect nltk
source activate goose
pip install -i https://pypi.anaconda.org/pypi/simple jieba
conda install -fc https://conda.anaconda.org/auto beautifulsoup4
Then move the contents of the python-goose-develop/ into the goose environment, similar to this.
cp ~/Downloads/python-goose-develop/* ~/anaconda/envs/goose
cd ~/anaconda/envs/goose
python setup.py install

针对dsgfdg的以下"答案"。

David-Laxers-MacBook-Pro:phoenix_pipeline davidlaxer$ sudo !!
sudo port install webp
--->  Computing dependencies for webp
Error: Unable to execute port: Can't install jpeg because conflicting ports are active: libjpeg-turbo

我下载了Pillow 2.3.1并制作了它。它成功构建,但随后未通过测试。以下是摘录。

David-Laxers-MacBook-Pro:Pillow-2.3.1 davidlaxer$ python Tests/run.py
--------------------------------------------------------------------
running test_000_sanity ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_000_sanity.py", line 5, in <module>
    import PIL.Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0
running test_001_archive ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_001_archive.py", line 2, in <module>
    import PIL.Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0
running test_file_bmp ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_file_bmp.py", line 3, in <module>
    from PIL import Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0
running test_file_eps ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_file_eps.py", line 3, in <module>
    from PIL import Image, EpsImagePlugin
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0
running test_file_fli ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_file_fli.py", line 3, in <module>
    from PIL import Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0
running test_file_gif ...
=== error 256
Traceback (most recent call last):
  File "Tests/test_file_gif.py", line 3, in <module>
    from PIL import Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__

导入错误:dlopen(/Users/davidlaxer/.python eggs/Pilow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/\imaging.so,2(:未加载库:libjpeg.8.dylib参考自:/Users/davidlaxer/.python eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so原因:库版本不兼容:_imaging.so需要13.0.0或更高版本,但libjpeg.8.dylib提供12.0.0版本--------------------------------------------------------------------***94项测试中有94项失败。David Laxers MacBook Pro:枕头-2.3.1 davidlaxer$

David-Laxers-MacBook-Pro:scraper davidlaxer$ python scraper.py
Traceback (most recent call last):
  File "scraper.py", line 8, in <module>
    from goose import Goose
  File "/users/davidlaxer/anaconda/lib/python2.7/site-packages/goose/__init__.py", line 27, in <module>
    from goose.crawler import CrawlCandidate
  File "/users/davidlaxer/anaconda/lib/python2.7/site-packages/goose/crawler.py", line 31, in <module>
    from goose.images.extractors import UpgradedImageIExtractor
  File "/users/davidlaxer/anaconda/lib/python2.7/site-packages/goose/images/extractors.py", line 28, in <module>
    from goose.images.utils import ImageUtils
  File "/users/davidlaxer/anaconda/lib/python2.7/site-packages/goose/images/utils.py", line 26, in <module>
    from PIL import Image
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/Image.py", line 53, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/PIL/_imaging.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so, 2): Library not loaded: libjpeg.8.dylib
  Referenced from: /Users/davidlaxer/.python-eggs/Pillow-2.3.1-py2.7-macosx-10.5-x86_64.egg-tmp/PIL/_imaging.so
  Reason: Incompatible library version: _imaging.so requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0

问题是MacPorts中的libjpeg-turbojpeg端口都提供libjpeg.dylib和相应的头文件(因此,它们相互冲突,无法同时安装(,但jpeg端口提供libjpeg.9.dylib,这与libjpeg-turbolibjpeg.8.dylib的ABI不兼容。

问题不是由vsftpd端口的安装引起的;相反,MacPorts在每次安装或更新后都会运行一个名为rev-upgrade的健全性检查,检查ABI兼容性问题,例如引用不存在或不兼容的库。当它检测到此类问题(如您的情况(时,它会尝试重建损坏的端口以修复这些问题。

此健全性检查确定您的tiff端口已损坏,因为它的一个二进制文件或库链接到libjpeg.9.dylib——此文件不存在,因为它是由jpeg端口提供的,但您只安装了libjpeg-turbo。然后,重建尝试将jpeg端口作为tiff的依赖项安装,但由于冲突而失败。

此时您有多种选择:

  • 卸载libjpeg-turbo并安装jpeg。这应该可以解决您的问题,但如果您出于某种原因不明确想要libjpeg-turbo,这只是一个选项
  • 卸载所有明确依赖jpeg端口的端口,并重建那些将接受libjpeg-turbo作为libjpeg.dylib库提供程序的端口;不幸的是,tiff端口目前不在其中:
    $> port info --depends_lib tiff
    depends_lib: port:jpeg, port:xz, port:zlib
    如果同时支持这两个版本,它将包含path:lib/libjpeg.dylib:jpeg。一项快速调查显示,MacPorts中目前只有极少数端口支持libjpeg-turbo以提供JPEG功能。这种情况将来可能会改变(事实上,最近邮件列表上也有关于这一点的讨论(

TL;DR:

sudo port -f uninstall libjpeg-turbo
sudo port install jpeg
sudo port rev-upgrade

最新更新