make実行時にerror: invalid instruction mnemonic 'adoxq' が発生した原因
開発環境
- OS : Mac OS X バージョン 10.8.4
症状
make実行時にerror: invalid instruction mnemonic 'adcxq' が出る。
下記ログは、rubyのバージョンアップ時にopensslをインストールしており、そのなかでmakeが実行されているもの。
$ rbenv install 2.3.1 Downloading openssl-1.0.2h.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 Installing openssl-1.0.2h... BUILD FAILED (OS X 10.8.4 using ruby-build 20160426-10-g2bd59bd) Inspect or clean up the working tree at /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508225226.46928 Results logged to /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508225226.46928.log Last 10 log lines: ^~~~~ x86_64-mont.s:1038:2: error: invalid instruction mnemonic 'adcxq' adcxq %rax,%r13 ^~~~~ x86_64-mont.s:1039:2: error: invalid instruction mnemonic 'adoxq' adoxq %rbp,%r15 ^~~~~ make[2]: *** [x86_64-mont.o] Error 1 make[1]: *** [subdirs] Error 1 make: *** [build_crypto] Error 1
原因
Failure to build openssl on OS X 10.9.5 · Issue #44282 · Homebrew/legacy-homebrew · GitHub
ここで書いてある通り、Xcodeとコマンドラインツールのバージョンの不一致が原因のようです
間違った手順
Xcodeをインストール
https://developer.apple.com/downloads/?=xcode からインストールできます。
4.6.3をインストールしました
コマンドラインツールをインストール
Xcode > Preference > Downloads > Components にある Command Line Tools を選択してインストールします
'The package "DeveloperToolsCLI.pkg" is untrusted." というエラー発生が発生
'The package "DeveloperToolsCLI.pkg" is untrusted." というエラー発生が発生して、コマンドラインツールのインストールができませんでした
セキュリティレベルを変更
こちらを参考に、Macのセキュリティレベルを変更しましたが、今回は効果がありませんでした。
コマンドラインツールをインストール
Xcodeからのインストールはあきらめて、Appleのダウンロードサイト https://developer.apple.com/downloads/?=command%20line%20tools からインストールします。
Command Line Tools (OS X Mountain Lion) for Xcode - September 2013 を選択しました。
参考 : Command Line Tools fail to install OS X Lion 10.7.3 Xcode 4.3 - Ask Different
エラー発生
$ rbenv install 2.3.1 Downloading openssl-1.0.2h.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 Installing openssl-1.0.2h... BUILD FAILED (OS X 10.8.4 using ruby-build 20160426-10-g2bd59bd) Inspect or clean up the working tree at /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508225226.46928 Results logged to /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508225226.46928.log Last 10 log lines: ^~~~~ x86_64-mont.s:1038:2: error: invalid instruction mnemonic 'adcxq' adcxq %rax,%r13 ^~~~~ x86_64-mont.s:1039:2: error: invalid instruction mnemonic 'adoxq' adoxq %rbp,%r15 ^~~~~ make[2]: *** [x86_64-mont.o] Error 1 make[1]: *** [subdirs] Error 1 make: *** [build_crypto] Error 1
対応
Xcode 4.6.3 に対応するコマンドラインツールが見つからなかったので、別のバージョン(5.1.1)をインストールしました。こちらのバージョンではXcodeのダウンロード画面からインストールすることができました。
過去バージョンのXcodeの入手方法
前回の続き。 makeコマンドが無かったのでXcodeと付属のコマンドラインツールをインストールしようとしたときの話。
開発環境
- OS : Mac OS X バージョン 10.8.4
症状
最新のXcodeがダウンロードできない
最新のXcodeはAppStoreからダウンロードできますが、Xcodeを選択してインストール開始したところ、バージョン非対応エラー。そうですよね、こんな古いMacに対応してませんよね。
対応
さて、ここで選択肢は2つ。
- OSをバージョンアップする
- 過去バージョンのXcodeを探してインストールする
OSバージョンアップをするべきだとは思うのですが、今まで動いていたアプリが動かなくなるという懸念があるので、今回は見送りました。
過去バージョンのXcodeをダウンロードする
こちらのリンクから探すことが可能です。Xcodeで検索します。詳細を表示して対応バージョンを確認します。
https://developer.apple.com/downloads/?=xcode
バージョン 5.1.1がOS X バージョン 10.8.4(Mountain Lion)に対応しているのでこちらをダウンロードします
インストールできました
Macでmake:command not foundとなったときの対処法
開発環境
- OS : Mac OS X バージョン 10.8.4
症状
rubyのインストール中、 makeコマンドが見つからないというエラーが出た
$ rbenv install 2.3.1 Downloading openssl-1.0.2h.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 Installing openssl-1.0.2h... BUILD FAILED (OS X 10.8.4 using ruby-build 20160426) Inspect or clean up the working tree at /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508134848.45570 Results logged to /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508134848.45570.log Last 10 log lines: PROCESSOR = RANLIB =true ARFLAGS = PERL =/usr/bin/perl SIXTY_FOUR_BIT_LONG mode DES_UNROLL used DES_INT used RC4_CHUNK is unsigned long sh: make: command not found /Users/user/.rbenv/plugins/ruby-build/bin/ruby-build: line 564: make: command not found
whichで確認すると、何も表示されません
$ which make
対応と解決策
パスの確認
まずはパスの確認から。rbenvのインストールでパスを書き換えた際に、コマンドをミスしていないかどうかを確認します。
$ echo $PATH /Users/user/.rbenv/shims:/Users/user/.rbenv/bin:/Users/user/.rbenv/shims:/Users/user/git/rbenv/bin:/Users/user/.rbenv/shims:/Users/user/git/rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/opt/X11/bin
/usr/bin, /binなどが含まれているので、パスは問題なさそうですね。 makeは通常 /usr/bin/make にインストールされているので、一応確認します
$ ls /usr/bin/make
ls: /usr/bin/make: No such file or directory
やっぱり無い
makeコマンドのインストール
Googleで調べたところ、Xcodeのコマンドラインツールをインストールすればmakeコマンドもインストールされるようです。
Xcode バージョン 5.1.1の場合、 Xcode > Preference > Downloads > Components にある Command Line Tools を選択してインストールします
インストール後、makeコマンドのありかを確認してみると、/usr/bin/makeが表示されました。無事makeコマンドがインストールされました。
$ which make /usr/bin/make
こちらの記事が大変参考になりました。
Mac OS X Lion で、makeコマンドないやんけ!という時の対処方法 - @kaoritter BLOG
試していませんが、以下のコマンドでもコマンドラインツールをインストールできるようです。
$ xcode-select --install
また、ruby-buildの公式のwikiでは、コマンドラインツールおよびhomebrew The missing package manager for macOS (or Linux) — Homebrew のインストールを実施後、下記コマンドを実施することを推奨しています。
brew install openssl libyaml libffi
追記
調べてみると、OS X のバージョンによってコマンドラインツールのインストール方法が違うようで、最近のOSの場合は、コマンドを実行してインストールする必要がありそうです。
関連記事
rbenvとruby-buildインストール時に no such command `install' が出た原因と対処法
前回の続き。rubyのバージョンをあげる最中に
no such command `install'
というエラーが出てしまった原因と対処法。
症状
rbenv実行時に no such command `install' というエラーが出た
$ rbenv install -l rbenv: no such command `install'
原因
gitからcloneするときに、保存先のパスを間違って指定してしまった。
正しい方法
にインストール(clone)する
間違った方法と解決まで
rbenvとruby-buildのclone (誤った手順)
ログインスクリプトの記載 (誤った手順)
$ echo 'export PATH="$HOME/git/rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile
動かぬ
$ rbenv install -l rbenv: no such command `install'
一旦今のリポジトリを消して再度clone実行
怒られた
自動的に~/.rbenvにいろいろいろ配置されていたようだ
bash-3.2$ ls -la ~/.rbenv total 96 drwxr-xr-x 4 xxxx xxxxx 680 May 7 00:35 . drwxr-xr-x+ 42 xxxx xxxxx 1462 May 7 23:42 .. drwxr-xr-x 2 xxxx xxxxx 306 May 7 00:35 shims drwxr-xr-x 2 xxxx xxxxx 102 May 7 00:26 versions
~/.rbenv消去
$ rm -r ~/.rbenv
再度clone実行
ログインスクリプト書き直し
$ vi ~/.bash_profile # 古い内容を削除して、 export PATH=$HOME/git/rbenv/bin:$PATH # 正しい内容を記載 export PATH=$HOME/.rbenv/bin:$PATH # 設定を読み込み $ source ~/.bash_profile
できた
$ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 1.8.7-p249 1.8.7-p302 1.8.7-p334 # 後略
言い訳
gitからcloneしてきたものは ~/git 配下に置くようにしてたので今回もその通りにしていました。 PATHでrbenvの場所指定したのでどこにインストールしても大丈夫だと思ってました。 ちゃんとドキュメント読んでおけよという話ですね。
Rubyのバージョンアップ方法(rbenv使用) - うまくいく場合
PCにインストールされているRubyのバージョンが古かったので、最新の安定板にアップデートしました
開発環境
- OS : Mac OS X バージョン 10.8.4
- gitのクライアントアプリとして Sourcetree - 無料の Git & Mercurial クライアント | アトラシアン (バージョン1.8.1)を使用しています
バージョンアップ手順
現在のバージョンを確認
$ ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
4年前のバージョンですね
ruby自体のバージョンをあげるにはいくつか方法があるようなのですが、今回は友人おすすめのrbenvを使用します。
rbenvの設定
rbenv を git clone
ソースパス/URL | https://github.com/sstephenson/rbenv.git |
---|---|
保存先のパス | ~/.rbenv |
ログインスクリプトに必要事項を記載
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # 初回なのでsourceをする。以降はログイン時に上記コマンドが実行される $ source ~/.bash_profile # コマンドの確認 $ which rbenv /Users/user/.rbenv/bin/rbenv
ruby-buildをgit clone
ソースパス/URL | https://github.com/sstephenson/ruby-build.git |
---|---|
保存先のパス | ~/.rbenv/plugins/ruby-build |
インストールできるバージョンの確認
# インストールできるrubyのバージョンを確認 $ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 1.8.7-p249 1.8.7-p302 1.8.7-p334 # 後略
https://www.ruby-lang.org/ja/downloads/
を確認すると、最新(2016年05月10日時点)の安定版が2.3.1なので、このバージョンをインストールします。 2.3.1がインストールできるか念のため確認。
$ rbenv install -l | grep 2.3.1 2.3.1
大丈夫そうですね。
rubyのバージョンを指定してインストール
$ rbenv install 2.3.1 Downloading openssl-1.0.2h.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 Installing openssl-1.0.2h... Installed openssl-1.0.2h to /Users/user/.rbenv/versions/2.3.1 Downloading ruby-2.3.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2 Installing ruby-2.3.1... Installed ruby-2.3.1 to /Users/user/.rbenv/versions/2.3.1
デフォルトで使用するrubyのバージョンを指定する
デフォルトで使用するrubyのバージョンを指定します
$ rbenv global 2.3.1
rubyバージョンの確認
$ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin12.0]
バージョンアップできました。
しかし、バージョンアップをする最中にいろいろな問題に遭遇したのでした (次回へ続く)
"パーフェクトRuby on Rails"という本を参考にしています
パーフェクトRuby on Rails |
自己紹介。過去の作品とこれから作るもの
はじめまして。yucatioです。よろしくお願いします。
このブログについて
プログラミングしていて気づいたことや作成したアプリの解説を書いています。
プライバシーポリシー
当サイトが使用しているアクセス解析ツールについて
当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。
このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。
このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。
Google Analytics Terms of Service | Google Analytics – Google
当サイトに掲載されている広告について
当サイトではGoogleによる広告配信ツール「GoogleAdSense」を利用しています。
このツールは、Google などの第三者配信事業者が Cookie を使用して、ユーザーがそのウェブサイトや他のウェブサイトに過去にアクセスした際の情報に基づいて広告を配信します。
また、Google が広告 Cookie を使用することにより、ユーザーがそのサイトや他のサイトにアクセスした際の情報に基づいて、Google やそのパートナーが適切な広告をユーザーに表示できます。
Googleアドセンスに関して、このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらをクリックしてください。
連絡先
yucatio.com@gmail.com
このブログを書いている人
ネット通販サイトでシステムエンジニアとして働いています。仕事で主に使う言語はJava。趣味でRubyとRuby on Railsの勉強を始めました。現在はReactやReduxなどのフロントエンド技術を勉強しています。
過去には趣味でAndroidアプリを作っていました。 作品はこちら
プライバシーポリシー
これらのアプリでは、個人情報の取得を行なっておりません。
広告配信を目的として以下の広告配信事業者がご利用者の情報を自動取得する場合がございます。