Compose: 达尔文上的二进制文件在某些​​计算机上因“非法指令”而失败

创建于 2014-06-25  ·  98评论  ·  资料来源: docker/compose

当前的fig版本对我不起作用:

$ fig
-bash: fig: command not found

$ curl -L https://github.com/orchardup/fig/releases/download/0.4.2/darwin > /usr/local/bin/fig
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   329  100   329    0     0    329      0  0:00:01 --:--:--  0:00:01   329
100 3860k  100 3860k    0     0   625k      0  0:00:06  0:00:06 --:--:--  842k

$ chmod +x /usr/local/bin/fig

$ fig
Illegal instruction: 4

我正在1.6 GHz Intel Core 2 Duo(2010年末MacBook Air)上运行OS X 10.9.3。

arepackaging kinbug

最有用的评论

认真地说...我们不应该运送在某些机器上无法使用的二进制文件。 或者,我们至少应该尝试找出未启用哪些机器,并提供替代说明。 (例如,“如果您的处理器早于Intel i5 / i7,则需要使用pip。”)

所有98条评论

确实为我运行,并且我执行了相同的步骤

->无花果-版本
图0.4.2

13.2.0 Darwin Kernel Version 13.2.0:Thu Apr 17 23:03:13 PDT 2014; 根目录:xnu-2422.100.13〜1 / RELEASE_X86_64 x86_64

@tomstuart您是否仍然收到此错误?

我也一样

2009年中13英寸10.9.3

@tomstuart您是否用其他东西替换了系统Python? 您可以尝试0.5.0吗?

我有同样的问题
达尔文内核版本13.3.0
Python 2.7.8

能够通过用homebrew安装python然后用pip安装fig来解决这个问题

可以确认@ndeloof解决方案对我

我已经按照干净重新安装Mavericks上建议的无花果站点通过curl安装了。 收到“非法指令”错误。

Mvd /usr/local/bin/fig 。 先跑brew python ,然后跑pip install fig

现在一切正常。 (至少, Rails演示有)

OSX版本10.9.5Python 2.7.8对于图1.0.0 。 解决方法是使用pip进行安装,而不是curl

@sirwolfgang您使用的Mac是什么型号?

MacBook Pro 6,2(15英寸,2010年中)

仅供参考,在带有Core i7(iMac11,1)的2009 27英寸iMac上。 而是通过pip安装,看起来还可以。

运行OSX 10.9.5的2009年15英寸MacBook Pro出现同样的问题。

brew install python; pip install fig

为我工作。

尝试卷曲Fig-1.0.1时,我遇到了与@tomstuart相同的错误。

Mac OS X 10.10.1
Python 2.7.8
达尔文14.0.0

@ndeloof解决方案(pip)修复。

:+1: @ndeloof发布的解决方案

每个人似乎都对自制/点子解决方案感到满意(并且我不再关心),因此我将解决此问题。

我在乎,汤姆。

认真地说...我们不应该运送在某些机器上无法使用的二进制文件。 或者,我们至少应该尝试找出未启用哪些机器,并提供替代说明。 (例如,“如果您的处理器早于Intel i5 / i7,则需要使用pip。”)

我有相同的问题+1

我看到了+1,如下所示:

型号名称:iMac
型号标识符:iMac11,3
处理器名称:Intel Core i5
处理器速度:3.6 GHz
处理器数量:1
核心总数:2
L2高速缓存(每核):256 KB
L3快取:4 MB
记忆体:8 GB
处理器互连速度:6.4 GT / s
引导ROM版本:IM112.0057.B01
SMC版本(系统):1.59f2

如果您还有其他问题,请问您还可以包括您使用的硬件吗? 而是只需对其+1。

+1

图:1.0.1
的Python:2.7.5
OS X:10.9.5

型号名称:MacBook
型号标识符:MacBook6,1(2009年末)
处理器名称:Intel Core 2 Duo
处理器速度:2.26 GHz
处理器数量:1
核心总数:2
L2快取:3 MB
记忆体:4 GB
总线速度:1.07 GHz
引导ROM版本:MB61.00C8.B00
SMC版本(系统):1.51f53

我们也在这里打过。

我真的很想看到docker-compose在香草OSX上工作。

图:1.1.0-rc2
的Python:2.7.5
OS X:10.9.5

型号名称:MacBook
型号标识符:MacBook5,2(2009年初)
处理器名称:Intel Core 2 Duo
处理器速度:2 GHz
处理器数量:1
核心总数:2
L2快取:3 MB
记忆体:4 GB
总线速度:1.07 GHz

:+1:

型号名称:MacBook Pro
型号标识符:MacBookPro5,4
处理器名称:Intel Core 2 Duo
处理器速度:2.53 GHz
处理器数量:1
核心总数:2
L2快取:3 MB
记忆体:4 GB
总线速度:1.07 GHz
引导ROM版本:MBP53.00AC.B03
SMC版本(系统):1.49f2

$ sysctl -n machdep.cpu.brand_string
英特尔(R)酷睿TM i7 CPU M 640 @ 2.80GHz

有同样的问题,但
brew install python
pip install -U pip
为我修复

不知道为什么,但是通过运行fig --version来下载Python的软件包安装程序(2.7.9)并安装curl来安装python,这给了我Illegal instruction: 4错误

使用第三方软件进行“修复”是已知的。 如果我启动virtualbox debian并在其中安装fig,它也可以工作。

我在优胜美地也遇到同样的问题。 我安装了python,但未安装pip。 运行从github下载的fig 1.0.1二进制文件,结果为“非法指令:4”。

要修复它,我所要做的就是安装pip,然后使用相同的无花果二进制文件。 甚至不需要运行“ pip install fig”-只需再次执行fig二进制文件,就不会发生错误。

我怀疑这是硬件特定的问题。 pip是否更有可能安装/更新了原始无花果二进制文件所依赖的某些库?

有没有人能够在没有安装pip的情况下运行无花果二进制文件? 这几天打p是很常见的...

@kulinski您绝对确定您之前和之后都运行过相同的二进制文件吗?

@kulinski的方法不起作用,至少在我的机器上不起作用。

注意:docker-compose = fig

脚步:

  • 虚拟环境的python
  • 安装点
  • DL最新无花果发布
  • Mv图到virtualenv
  • 运行无花果
  • Illegal instruction: 4

哦,是的:我仔细检查了我的机器上没有安装无花果。 所以我不可能运行错误的二进制文件

+1

$ docker-compose
Illegal instruction: 4

型号:MacBookPro5,5(2009年中的13英寸-Core 2 Duo)
作业系统:10.10.2
的Python:2.7.6

但是docker-compose在我的iMac上可以正常工作:
型号:iMac12,2(27英寸,2011年中-Core i5)
作业系统:10.9.5
的Python:2.7.5

实际的无花果二进制代码在1.0.1上都可以正常工作!

尝试使用此处的说明构建字节币: http ://bytecoin.org/mac-download?binaries
失败,显示“非法指令:4”,尝试使用以下方法修复:
brew安装python; 点安装无花果,仍然没有喜悦
机器细节:
Mac mini 2009
处理器2 GHz Intel Core 2 Duo
内存5 GB 1067 MHz DDR3
显卡NVIDIA GeForce 9400 256 MB
oftware OS X 10.9.5(13F34)

这里同样的问题。
无花果正在工作。 Docker 1.5正常工作。
刚安装的docker-compose最新并获得了非法指令:4。
Mac Pro 2009。 优胜美地10.10.2。

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   .Python                         0x0000000106cce5e6 _PyRandom_Init + 359
1   .Python                         0x0000000106ccbc2b Py_InitializeEx + 345
2   docker-compose                  0x0000000106bd4a13 0x106bd2000 + 10771
3   docker-compose                  0x0000000106bd3f38 0x106bd2000 + 7992
4   docker-compose                  0x0000000106be7cb8 0x106bd2000 + 89272
5   docker-compose                  0x0000000106bd37f4 0x106bd2000 + 6132

rc2之后,与1.1发行版相同。 :哭:

+1。 图工作正常,但向docker-compose的过渡相当艰难。 通过pip完成此操作-删除curl文件,安装brew,升级,运行pip install和重新启动终端的某种组合。

型号名称:MacBook Pro(这是2007年中后期的型号。运行10.10.1。)
型号标识符:MacBookPro3,1
处理器名称:Intel Core 2 Duo
处理器速度:2.4 GHz
处理器数量:1
核心总数:2
L2快取:4 MB
记忆体:4 GB
总线速度:800 MHz
引导ROM版本:MBP31.0070.B07
SMC版本(系统):1.16f11

+1。 非法指示:4。

通过@BrendanBerkley提到的pip安装对我

型号名称:MacBook
型号标识符:MacBook6,1
处理器名称:Intel Core 2 Duo
处理器速度:2.26 GHz
处理器数量:1
核心总数:2
L2快取:3 MB
记忆体:8 GB
总线速度:1.07 GHz
引导ROM版本:MB61.00C8.B00
SMC版本(系统):1.51f53

+1

MacBook Pro“ Core i5” 2.53 15” 2010年中
2.53 GHz Core i5(I5-540M)
型号ID:MacBookPro6,2

brew安装时可以使用,但我想尝试新的预发行版。 https://github.com/docker/compose/releases/tag/1.2.0rc1但我得到Illegal Instruction: 4

@EloB docker -compose 1.1.0在使用pip install docker-compose安装的旧Mac上完美运行

您可以尝试sudo pip install -U https://github.com/docker/compose/archive/1.2.0rc2.zip吗?

据我所知,OSX不附带pip。

因此,您可以尝试此操作,但是似乎有些依赖项需要使用pip更新:

git clone https://github.com/docker/compose.git
cd compose
sudo python setup.py install

或使用brew安装pip: brew install python ,它会更新出厂的Python二进制文件并安装pip。

感谢安装pip工作! :)

我有一台旧机器,试图将其设置为Docker主机。 最好确定这个问题,这样我就不必安装其他未使用的依赖项。

到目前为止的讨论暗示这是1.2的新内容,但我已经证实该问题也在1.1中发生

使用二进制抛出:

[1]    10956 illegal hardware instruction  docker-compose

从pip安装(使用python 3.4.3)后,它会抛出:

Traceback (most recent call last):
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 612, in _build_master
    ws.require(__requires__)
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 918, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 810, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (requests 2.4.3 (/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages), Requirement.parse('requests>=2.5.2'), {'docker-py'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Arthur/.pyenv/versions/3.4.3/bin/docker-compose", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 3018, in <module>
    working_set = WorkingSet._build_master()
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 614, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 627, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages/pkg_resources/__init__.py", line 810, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (requests 2.4.3 (/Users/Arthur/.pyenv/versions/3.4.3/lib/python3.4/site-packages), Requirement.parse('requests>=2.5.2'), {'docker-py'})

我在优胜美地使用iMac,并且我想使用docker-compose你知道的:/

嗨哈根,

您应该尝试更新请求包尝试使用'pip install --upgrade requests == 2.5.2'并安装docker-py

@ rfranca86我使用python 2.7.9使其工作,然后简单地使用pip install docker-compose完成了! 但是,我稍后将尝试您说的内容,谢谢!

通过pip安装对我也有用。

在Mac OS 10.7.5上运行docker compose时(Mac Pro Mid 2010)
错误:
非法指示:4

固定:
brew安装python
pip安装docker-compose

不起作用。 重新安装使用

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose- uname -s - uname -m > / usr / local / bin / docker-撰写
chmod + x / usr / local / bin / docker-compose

也行不通。

下载https://www.python.org/ftp/python/2.7.9/python-2.7.9-macosx10.6.pkg安装程序。
安装Python 2.7.9
pip install docker-compose也失败。

之所以发生这种情况,是因为默认情况下,Homebrew使用构建机器可以支持的所有优化来构建Python。 假设在使用Sandy Bridge或更新处理器的Mac上进行构建,则这些优化将包括使用AVX指令。 因此,解决方案是将Homebrew配置为仅使用安全优化。 我建议“ -O2 -fno-omit-frame-pointer”,仅此而已。

pip安装成功,但是启动docker-compose时出现以下错误:

$ docker-compose up
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 5, in <module>
    from pkg_resources import load_entry_point
...
pkg_resources.DistributionNotFound: six>=1.3.0,<2

我已经更新到docker-compose 1.3.1 ,这解决了我的问题。

cURL安装方法似乎并不适合所有人,我也得到了

Error:
Illegal instruction: 4

有趣的是,我将首先使用pip安装...为什么不在docker网站上将pip显示为默认安装方法? 随你...

安装带有curl的1.3.3(最新版本)并得到以下错误:

$ docker-compose up
Illegal instruction: 4

OS X 10.9.5 MBP 2008年末

我挣扎了两天,终于得到了。 它。 使用自制的:

brew安装docker
brew安装docker-compose

但请注意摆脱之前安装的任何东西,并且可能会使用

酿造链接--force openssl

但我不确定后者是否必要。

有了这个主意是因为某处有人说自制软件不提供docker-compose

OSX 10.10.4 MBP 2007年末

谢谢,@ apoigne。 您的解决方案对我有用。

别客气

阿克塞尔

有人在乎阅读线程吗? 这是一个圈子。 它总是与Brew等非香草解决方案一起使用。 这不是创建此线程的原因。 它创建于一年多以前,以突出它在VANILLA OSX上不起作用。

我遵循@josephpage并从源代码安装了

$ git clone https://github.com/docker/compose.git
$ cd compose
$ sudo python setup.py install
$ docker-compose --version
docker-compose version: 1.4.0dev

@aanand如果我们对软件/库有特定的系统要求,那就太好了。 很多人在这里发布他们的规格。 我们知道为什么它不能完全起作用吗? 抱歉,如果我们错过了他们,我会很抱歉。

是的,我们确实知道为什么它不起作用。 如我之前所述,问题是OS X的Compose二进制软件包使用Homebrew的Python软件包。 默认情况下,Homebrew启用构建计算机上处​​理器支持的所有特定于CPU的编译器优化。 具体来说,假设构建是在具有Sandy Bridge或更高版本处理器的Mac上完成的,则由Homebrew编译的Python版本将使用AVX。 因此,解决方案是在构建时配置Homebrew,以使用更为保守的一组优化。 有人需要在OS X的Compose构建脚本中找出解决方法。

谢谢@mwcampbell。 这是我们使用的自制公式:

https://raw.githubusercontent.com/Homebrew/homebrew/1681e193e4d91c9620c4901efd4458d9b6fcda8e/Library/Formula/python.rb

我不确定如何配置Homebrew以禁用AVX优化。

我确定了编译Python时通过的CFLAGS:

$ /usr/local/bin/python
Python 2.7.9 (default, May  2 2015, 03:33:28) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sysconfig
>>> sysconfig.get_config_var('CFLAGS')
'-fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes'

但是我不确定哪个是罪魁祸首,或如何将其禁用。 除了下载Python并自行编译之外。 当然是一种选择。

来这里说+1。

通过卸载docker,boot2docker和fig,安装dockertoolbox,运行它以使其初始化默认计算机,删除dockertoolbox并安装docker,docker-compose和docker-machine来修复它。

然后,我必须安装openssl并强制链接它。

不是应该的样子,但至少可以在MacbookPro5,3和OS X 10.9.5上运行

brew remove docker boot2docker fig
brew cask install dockertoolbox
# run the docker toolbox app to initialize the default machine
brew cask remove dockertoolbox
brew install docker docker-compose docker-machine
brew install openssl
brew link --force openssl

@同轴
错误:码头工人没有可用的桶。 您的意思是以下之一吗?
boot2docker boot2docker状态docker-compose docker-machine dockertoolbox

@dacz我不好,应该是brew install docker docker-compose docker-machine ,而不是brew cask ...

使用pip(OSX 10.11)安装后修复
sudo pip install -U docker-compose

我在Macbook Pro 2010年中版本遇到相同的问题,

我从工具箱安装时遇到了问题,然后尝试从brew install docker-compose尝试1.4.2版本,并从此手动安装:

curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

那仍然是失败的。

我确认这项工作有效:

sudo pip install -U docker-compose

成功安装PyYAML-3.11 docker-compose-1.4.2 docker-py-1.3.1 dockerpty-0.3.4 docopt-0.6.2 requests-2.6.2六-1.10.0 texttable-0.8.3 websocket-client-0.32。 0

sudo pip install -U docker-compose适用于为我删除Illegal instruction: 4
现在在运行docker-compose时获取python错误:

Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: six>=1.3.0,<2

安装sudo pip install distribute可以解决此问题:)

我们新的“使用pip安装”说明建议使用virtualenv缓解此类问题。

@ antek-drzewiecki(或其他遇到此问题的人)我想看看我们在travis上构建的二进制文件是否也有同样的问题。 如果您有时间可以尝试使用主版本: https :

谢谢!

@dnephin我现在解决了依赖关系。 因此,这不像我现在要进行全新安装。
我将卸载docker-compose pip并使用您链接的darwin二进制文件。

开发版本有效,我采取的步骤:

$ sudo pip uninstall docker-compose
 Successfully uninstalled docker-compose-1.4.2

$ docker
docker          docker-machine  


$ curl -L https://dl.bintray.com/docker-compose/master/docker-compose-Darwin-x86_64  > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version: 1.5.0dev

@ antek-drzewiecki感谢您尝试! 我认为从现在开始,我们应该使用这些二进制文件进行发布。

@dnephin :它也适用于我的配置:

  • El Capitan 10.10上的Hackintosh
  • CPU:Core i7-950(在Sandy bridge之前)

感谢您解决此问题,希望您有时间集成到1.5.0版本中:)

在Mac OS X上,运行于2008 MacPro上的docker toolbox 1.9 relase存在相同的问题。

二进制文件是否使用指令集进行编译,而指令集可能排除了一些较旧的CPU?

@kolis https://dl.bintray.com/docker-compose/master/中的二进制文件对您有用吗?

您正在运行什么版本的OSX?

将docker toolbox更新到1.9后遇到了相同的问题。

https://dl.bintray.com/docker-compose/master/下载的二进制文件解决了该问题。

OS X 10.11.1 El Capitan
MacBook Pro 15 2010年中

@dnephin是的,bintray主版本运行于OS X 10.11.1(15B42),工作正常

有关信息,它与我的config配合正常:

$ ./docker-compose-Darwin-x86_64 -version
docker-compose version: 1.6.0dev
$ sysctl -n machdep.cpu.brand_string
Intel(R) Core(TM) i7 CPU         950  @ 3.07GHz

顺便说一句,我在OS X 10.11上,并安装了最新的工具箱(1.9.0c)。

@dnephin :整合计划是什么? 版本1.6.0?

感谢您的修复!

有什么进展吗? 在运行优胜美地10.10.5的中型MacBook上与brew cask一起安装时,仍然出现错误。

使用pip安装对我有用。

1.6版docker-compose中的相​​同问题,再次,bintray二进制文件有效

同样在这里。 运行带有10.11.2的Mac Pro 5,1。 Bintray的作品。

我们在OS X 10.10.5上看到

运行带有10.11.2的Mac Pro 5,1。 Bintray的作品。

docker-toolbox中的1.6.0仍然损坏。

我们至少可以更改主网站上的下载和安装说明吗? 拥有不起作用的官方方法是很愚蠢的。

刚遇到这个。 OS X 10.11.3MacBook Pro (15-inch, Mid 2010)

刚刚安装在MacBook Pro(15英寸,2.53GHz,2009年中)的OS X 10.11.3上,我收到了“非法指令:4”

我以这种方式解决了没有自制的问题:

首先,从此处下载python官方软件包: https
将更新本地python并安装pip。 现在,在新的终端会话中

sudo pip install fig
sudo pip uninstall docker-compose
sudo pip install —upgrade docker-compose
hash -r

@Elhodred哪个版本的Python? 2还是3?

Python 2

谢谢@Elhodred它有效!

刚刚在2010年中期的Macbook Pro上遇到了这种情况

  Model Name:   MacBook Pro
  Model Identifier: MacBookPro6,2
  Processor Name:   Intel Core i7
  Processor Speed:  2.66 GHz
  Number of Processors: 1
  Total Number of Cores:    2
  L2 Cache (per Core):  256 KB
  L3 Cache: 4 MB
  Memory:   8 GB
  Processor Interconnect Speed: 4.8 GT/s
  Boot ROM Version: MBP61.0057.B11
  SMC Version (system): 1.58f17

抱歉,该链接已断开。 正确的网址:

https://github.com/docker/compose/releases/tag/1.7.0-rc1

遇到此问题的任何人都可以确认1.7.0-rc1二进制文件是否为他们解决了该问题?

是的@aanand现在已修复。 谢谢!

你好@aanand ! 感谢您修复该问题!

使用El Capitan 10.11.2的i7 950和使用10.9.4的i3 540进行了测试:成功!

修复程序正在iMac上运行(2010年中)。 谢谢@aanand。 :)

我可以确认它可以在Mac mini(2010年中)的1.7.0-rc1和1.7.0-rc2中工作。 谢谢!

@aanand我自己的软件也有类似的问题:我们在新的Mac上构建,但它需要在旧的

我们开始在travisci上构建,它可以在新版本的OSX上修复它,但不能在旧版本的OSX上运行。

此页面是否有帮助?
0 / 5 - 0 等级