- 投稿日:2020-03-30T23:34:29+09:00
Macにyarnインストールしようとしたら失敗した
はじめに
Web系の開発経験がない私でも東京都の新型コロナウイルス感染症対策サイトに貢献できないかと思い、開発環境を整えようと試みました。
GitHubリポジトリはこちら
東京都 新型コロナウイルス感染症対策サイト大変わかりやすいプロジェクトのはじめかたはこちら
東京都 新型コロナウイルス対策サイトへの貢献方法を解説まずyarnをインストールしようしたら早速こけたのでエラーログと解決方法をメモします。
brew install yarn
まず、Homebrewを使用してyarnをインストールします。
長いログメッセージの後に最後に以下が出力されました。brew install yarn (中略) ==> Installing yarn xcrun: error: invalid active developer path (/library/developer/CommandLineTools), missing xcrun at: /library/developer/CommandLineTools/usr/bin/xcrun Error: An exception occurred within a child process: CompilerSelectionError: yarn cannot be built with any available compilers. Install GNU's GCC: brew install gccどうやらgccがインストールされていないようです。
brew install gcc
Homebrewを使用してgccをインストールします。
brew install gcc xcrun: error: invalid active developer path (/library/developer/CommandLineTools), missing xcrun at: /library/developer/CommandLineTools/usr/bin/xcrun Error: Your Xcode (dunno => /library/developer/CommandLineTools) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.どうやらXCodeが最新ではないようです。
XCodeのアップデート
App Storeからアップデートするように言われたのでアップデートしました。
再びbrew install gcc
Homebrewを使用してgccをインストールします。
brew install gcc xcrun: error: invalid active developer path (/library/developer/CommandLineTools), missing xcrun at: /library/developer/CommandLineTools/usr/bin/xcrun Error: Your Xcode (dunno => /library/developer/CommandLineTools) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.同じエラーが出ました。
解決していないようです。xcrunのエラーで検索すると以下の記事がヒットしました。
macOSアップデート後の『xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)...』の対処法xcode-select --install
記事に従ってxcode-select --installを実行します。
xcode-select --install xcode-select: note: install requested for command line developer toolsインストールに成功しました。
再びbrew install gcc → brew install yarn
両方とも無事に成功しました。
まとめ
yarnをインストールできない原因はgccが入っていないことにあり、gccがインストールできない原因はxcode-selectのインストールにありました。
私のような初心者が開発環境構築で手間取らなければ良いと思い、一連の流れで投稿しました。今後は時間を見つけてコロナ対策に貢献していければと思います。
- 投稿日:2020-03-30T01:30:24+09:00
Eclipse インストール時に Failed to create the Java Virtual Machine.
はじめに
Mac に Eclipse をインストールしようとしたら "Failed to create the Java Virtual Machine." って怒られました。
インストール時にこんな屈辱を受けたのは初めてだ
もちろん Java は入ってる
結論から言うと、案の定いつものやつ
-vm
を ini ファイルに設定するあれだ手順
最初に注意点
原因がよくわからないが、 ini ファイルを vim で修正するとこんなエラーが出る。
vim でやる限り、何としてでも "Eclipse Installer.app" をゴミ箱にぶちこんでやらないと気が済まないらしい。
ふざけんな、という気持ちを押し込めつつ、GUI でやるとうまくいきます。
謎い
手順概要
- "Eclipse Installer.app" を適当な場所にコピー
- Finder で "Eclipse Installer.app" を右クリック > パッケージの内容を表示 >
Contents/Eclipse/eclipse-inst.ini
をテキストエディタで開くeclipse-inst.ini
に Java8 のパスを設定1. "Eclipse Installer.app" を適当な場所にコピー
通常 eclipse-inst-mac64.dmg をダウンロードしてクリックすると、eclipse installer が
/Volumes/Eclipse Installer
にマウントされるはず。で、その中に "Eclipse Installer.app" があるので、それを適当な場所にコピーする。
ここは GUI でも CLI でもいい。
なお、
/Volumes/Eclipse Installer
以下は Read Only なので、コピーしないと編集できません。2. Finder で "Eclipse Installer.app" を右クリック > パッケージの内容を表示 >
Contents/Eclipse/eclipse-inst.ini
をテキストエディタで開くここは特に補足説明なし。
前述の通り vim でやらないように
3.
eclipse-inst.ini
に Java8 のパスを設定
eclipse-inst.ini
にこの二行を追加する。-vm /Users/tommarute/.jenv/versions/1.8/bin/java※ もちろん Java のパスはご自身の環境のものを設定してください
なぜ Java8 かというと、自分の環境の最新 (14) だとインストーラーが動かなかったから。
Java9 だと動くのか、とかは試していない。
Java8 がない場合はこんな感じで入れてください。
$ brew tap AdoptOpenJDK/openjdk $ brew cask install adoptopenjdk8蛇足ですが、最新の Java が入っている場合は jenv などの管理ツールがあったほうが良いでしょう。
インストーラーを再実行
ini ファイルの修正をしたら Finder から "Eclipse Installer.app" をダブルクリックしよう。
いつもの画面が見れるはず。
Thanks,
- 投稿日:2020-03-30T01:27:44+09:00
Mac HomebrewでNode.jsをインストールする
目的
- Mac端末にHomebrewを用いてNode.jsをインストールする方法をまとめる
実施環境
- ハードウェア環境
項目 情報 備考 OS macOS Catalina(10.15.3) ハードウェア MacBook Air (11-inch ,2012) プロセッサ 1.7 GHz デュアルコアIntel Core i5 メモリ 8 GB 1600 MHz DDR3 グラフィックス Intel HD Graphics 4000 1536 MB 実施条件
- Homebrewが使用できる状態になっていること。
実施方法概要
- Nodebrewのインストール
- Node.jsのインストール
- 設定
実施方法詳細
Nodebrewのインストール
下記コマンド実行してNodebrewをインストールする。
$ brew install nodebrew下記コマンドを実行してNodebrewのインストールを確認する。
nodebrew -v
Node.jsのインストール
下記コマンドを実行して最新の安定バージョンをインストールする。(エラーが出た方はこちら→Mac Nodebrewを用いてNode.jsをインストールした時にエラーが出た話)
$ nodebrew install-binary stable下記コマンドを実行してNode.jsのインストールを確認する。
$ nodebrew --version設定
先に実行したコマンド
$ nodebrew --version
の出力の「# use a specific version number」の下部に記載されているコマンドを実行する。(「vX.X.X is not installed」というエラーが出た方はこちら→Mac Node.jsのバージョン有効化する手順でvX.X.X is not installedと出力された話)(X.X.Xはバージョン名)$ nodebrew use vX.X.X >use vX.X.X下記コマンドを実行してインストールしたNode.jsのバージョンが有効化されている事を確認する。
$ nodebrew ls ・ ・ ・ >current: vX.X.X先にインストールしたバージョンが「current:」の後に記載されていれば導入完了である。
下記コマンドを実行してパスを通す。
$ echo 'export PATH=$PATH:~/.nodebrew/current/bin/' >> ~/.bashrc「.bashrc」ファイルがログイン時に読み込まれるように設定していない場合は下記の手順を実施する。
下記コマンドを実行して「.bash_profile」ファイルを開く
$ vi ~/.bash_profile下記の内容を追記する。
~/.bash_profilesource ~/.bashrc
下記コマンドを実行して「.bashrc」ファイルを読み込む
$ source ~/.bashrc下記コマンド実行してパスが通っている事を確認する(command not foundにならなければOK)
$ npm
- 投稿日:2020-03-30T00:59:38+09:00
Mac SSH 設定
確認
$ ls -l ~/.ssh/config
~/.ssh
ディレクトリ、~/.ssh/config
ファイルがない場合は作成しましょう。$ mkdir ~/.ssh $ touch ~/.ssh/configパーミッション設定
$ sudo chown -R $(whoami):staff ~/.ssh $ sudo chmod 700 ~/.ssh $ sudo chmod -R 600 ~/.ssh/*拡張属性の除去
ダウンロードした鍵ファイルに拡張属性(EA: Extended Attributes)が付いてる場合があります。(
ls -l
パーミッションの右側に@
マークが付く)$ xattr -cr ~/.ssh全ホストに共通設定
私は次の設定を入れてます。
お好みで追加してください。$ vi ~/.ssh/config Host * StrictHostKeyChecking no UserKnownHostsFile=/dev/null ServerAliveInterval 15 ServerAliveCountMax 30 AddKeysToAgent yes UseKeychain yes IdentitiesOnly yes
StrictHostKeyChecking no
ホストキーチェック回避UserKnownHostsFile=/dev/null
ホストキーチェック回避ServerAliveInterval 15
タイムアウト対策ServerAliveCountMax 30
タイムアウト対策AddKeysToAgent yes
毎回パスフレーズを聞かれてくることに対する対策UseKeychain yes
毎回パスフレーズを聞かれてくることに対する対策LogLevel QUIET
警告メッセージを非表示にする
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
このメッセージ。関連記事
- 投稿日:2020-03-30T00:26:05+09:00
Google Cloud Speech-to-Text API を完全に理解する
公式ドキュメント
https://cloud.google.com/speech-to-text/docs
対象
・ターミナル、テキストエディタ(vimなど)の扱いができる方
・音声ファイルを自動で書き起こししたい方
料金
最初の60minは無料です。
また、音声ファイルから、翻訳された音声の長さに基づいて算出されるそうです。詳しくは公式ドキュメントをご覧ください。
https://cloud.google.com/speech-to-text/pricing?hl=ja向いている音声
・複数人ではなく、1-2人の音声
・雑音が少なく、はっきりと聞き取れる音声
当方の環境
・Mac(catalina 10.15.3)
事前準備
1 まず、GCPアカウントを作成し、コンソールにログインし、適当なプロジェクトを作成する
→ クレジットなど、支払い情報も登録しておくこと2 ナビゲージションメニューから、「APIとサービス」を選択しダッシュボードに入ってください。
3 認証情報からAPIキーを作成してください。
4 ナビゲージションメニューから、「storage」に入ってバケットを作成してください。
→ 詳しい方は以下の内容はご自身でお選びください
- 適当なバケット名をつける
- ロケーションはmulti-region,asiaにしてください
- ストレージクラスはstandardにしてください
- アクセス制御はきめ細かい管理を選択してください
- 暗号化はgoogleが管理する鍵を選択してください
- 作成完了
5 作成したバゲットの権限に、名前を allUsers ロールを ストレージオブジェクト管理者 でメンバー追加を行ってください。
6 バケットに音声ファイルをアップロードしてください
*音声ファイルについて
以下のオーディオコンバーターサイトでお持ちの音声ファイルを、wav形式で詳細設定をサンプルレート16000khzに変換してください。
https://online-audio-converter.com/ja/
詳細については公式ドキュメントを参照ください。flac形式などでもできるそうですが、当方はうまくいかなかったため、wavでご案内しています。詳しい方はご自身で設定くださいませ。
この時点でGCP側の設定が終了になります、音声ファイルは公開状態なので、translate後はバケットから削除してください。
7 ターミナルを開いて、python 3.5以上になっているかご確認ください。なっていない場合は3.5以上に設定してください。詳細はここでは割愛します。
python -v6 zipファイルをダウンロードして、任意の場所で展開してください。
→ 公式ではホームディレクトリを推奨しています7 ターミナルで任意のディレクトリまで移動し、install.shを実行してください
./google-cloud-sdk/install.sh実行後、反映のために、ターミナルを再起動してください。
8 SDK初期化を行います
gcloud init9 どんどん進めていきましょう
To continue, you must log in. Would you like to log in (Y/n)? Y
→ y を入力
Pick cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
→ 先程作成したプロジェクトを選択してくださいこれが終了すると、準備完了になります。
次は1分未満の音声ファイルを書き起こしする場合と、1分未満の音声ファイルを書き起こしする場合でやり方が変わるので、それぞれの方法を紹介します。
サンプルを実行する
1 ターミナルにて以下のコマンドを打ち込む
gcloud ml speech recognize 'gs://cloud-samples-tests/speech/brooklyn.flac' --language-code='en-US'2 成功すると以下のレスポンスが返ってきます
* confidenceは信頼度を表し、1に近いほど正確な翻訳を返したことになります。精度が低い場合は音声ファイルを見直すと改善するかもしれません。{ "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge" } ] } ] }1分未満の音声ファイルを書き起こしする場合
日本語の場合(他の言語の場合は公式ドキュメントでご確認ください。)
gcloud ml speech recognize 'gs://バケット名/音声ファイル名' --language-code='ja-JP'1分以上の音声ファイルを書き起こしする場合
1 以下のコマンドを打ち込む
gcloud ml speech recognize-long-running 'gs://バケット名/音声ファイル名' --language-code='ja-JP' --async
- --asyncでgoogle側で非同期処理を行ってくれているので、1分未満の音声ファイルを書き起こしする場合とは違い、すぐに返ってくるレスポンス待ちは行われません。
2 OPERATION_IDが付与されます
{ "name": OPERATION_ID }3 終わるまで、時間が少しかかるので、以下のコマンドで進行状態を確認します。
→ 30分の音声ファイルで10分くらいだった気がしますgcloud ml speech operations describe OPERATION_ID途中だと以下のレスポンスが返されます
{ "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "lastUpdateTime": "2020-03-27T07:49:17.871212Z", "progressPercent": 85, //85%完了している "startTime": "2020-03-27T07:41:24.492602Z" }, "name": "xxxxxxxxxxxxx" }完了すると以下のレスポンスが返されます
{ "done": true, "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "lastUpdateTime": "2020-03-27T07:51:01.138196Z", "progressPercent": 100, "startTime": "2020-03-27T07:41:24.492602Z" }, "name": "xxxxxxxxxxxxxxx", "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.93330336, "transcript": "ここにtranslateした内容が表示されます" } ] },