- 投稿日:2022-03-23T23:32:04+09:00
たまにしか使わないXcodeを外付けSSDに移動した
DockerやらAdobe関係で内蔵SSDが逼迫していて、OSのアップデートのたびに悩んでいたので、Xcodeを外付けSSDに移動したよ。 環境 Mac mini 2020 M1チップ Monterey 12.3 外付けSSDはSATA接続のやつ ドッキングステーションはこれ 安いけどスリープ時に何故か接続が切れてる時がある。 まず、SSD をフォーマットした とりあえずSSDをAPFS(MacOS拡張)にフォーマットした。 ネットを漁っているとOSの入っているディスク(起動ディスク)じゃないと起動しない説があったので、後々OSを入れられるようにこちらを選んだ。(起動ディスクである必要はなかった!) フォーマットの方法はディスクユーティリティで該当のSSDを選べばできるよ。 アプリケーション > ユーティリティ > ディスクユーティリティ 試したこと 既にインストールされている(AppStoreでダウンロードした)Xcodeを外付けSSDに移して起動してみた。 ダメでした。 パスを通してみた。 sudo xcode-select --switch /Volumes/SSDのパス/Xcode.app こちらもずっとくるくる状態でダメでした。 参考: うまくいく人もいるみたい。 うまく行った方法 Apple Developer ページからダウンロードした。 Apple IDでサインインを求められるのでサインインする。 Develop > Downloads > More でXcodeがダウンロードできる Xipファイルをダウンロード⇨外付けSSDに移して展開。 とんでもなく時間がかかります。(2〜3時間) その間にスリープに入ってSSDの接続が切れるとエラーが出るのでスリープの時間を変更しておこう。 初回起動時に Install additional required components? と出るので Install を押す。 起動できました! エミュレーターも正常に動き、いまのところ特に困っていません。 わーい!
- 投稿日:2022-03-23T23:32:04+09:00
Xcodeを外付けSSDに移動した
DockerやらAdobe関係で内蔵SSDが逼迫していて、OSのアップデートのたびに悩んでいたので、Xcodeを外付けSSDに移動したよ。 環境 Mac mini 2020 M1チップ Monterey 12.3 外付けSSDはSATA接続のやつ ドッキングステーションはこれ 安いけどスリープ時に何故か接続が切れてる時がある。 まず、SSD をフォーマットした とりあえずSSDをAPFS(MacOS拡張)にフォーマットした。 ネットを漁っているとOSの入っているディスク(起動ディスク)じゃないと起動しない説があったので、後々OSを入れられるようにこちらを選んだ。(起動ディスクである必要はなかった!) フォーマットの方法はディスクユーティリティで該当のSSDを選べばできるよ。 アプリケーション > ユーティリティ > ディスクユーティリティ 試したこと 既にインストールされている(AppStoreでダウンロードした)Xcodeを外付けSSDに移して起動してみた。 ダメでした。 パスを通してみた。 sudo xcode-select --switch /Volumes/SSDのパス/Xcode.app こちらもずっとくるくる状態でダメでした。 参考: うまくいく人もいるみたい。 うまく行った方法 Apple Developer ページからダウンロードした。 Apple IDでサインインを求められるのでサインインする。 Develop > Downloads > More でXcodeがダウンロードできる Xipファイルをダウンロード⇨外付けSSDに移して展開。 とんでもなく時間がかかります。(2〜3時間) その間にスリープに入ってSSDの接続が切れるとエラーが出るのでスリープの時間を変更しておこう。 初回起動時に Install additional required components? と出るので Install を押す。 起動できました! エミュレーターも正常に動き、いまのところ特に困っていません。 わーい!
- 投稿日:2022-03-23T20:40:41+09:00
zsh: command not found: npmが出た時の対処法
ある日npmコマンドを打つとエラーが出ました。 $ npm -v zsh: command not found: npm npmコマンドが一切使えなくなってしまいました。 解決までに行った方法を共有します。 環境はmacOS Montereyです。 nodebrewがインストール済みか確認する nodebrewと打って確認します。 色々と表示されれば問題ないです。一番上の行にバージョンの記載が出ます。 $ nodebrew nodebrew 1.2.0 Usage: ~~~ nodebrewをインストールする もしnodebrewが入っていなけばHomebrewを使用してインストールします。 $ brew install nodebrew Homebrewが入っていなれば下記コマンドでインストールできます。 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" ちなみにこちらのコマンドは公式からのコピーですのでご安心ください。 https://brew.sh/index_ja nodeをインストールして使用するバージョンを指定する nodeをインストールします。 nodebrew installでもインストールは可能ですが、install-binaryのほうがインストール時間が短いです。 $ nodebrew install-binary stable // 補足 stable 最新の安定版 latest 最新版 vXX.XX.X バージョン直接指定 nodeがインストールがされたかをnodebrew lsで確認します。 $ nodebrew ls v16.14.2 current: none currentに表示されるのが現在使用中のバージョンになります。 この場合はcarrentがnoneになっていて、v16.14.2がインストールされていますが使用するように設定されていない状態です。 nodebrew useで使用するバージョンを指定します。 こちらもinstall時同様、stableやlatestで指定することも可能です。 $ nodebrew use v16.14.2 or $ nodebrew use stable $ nodebrew use latest これで完了です。 確認してみます。 $ nodebrew ls v16.14.2 current: v16.14.2 $ node -v v16.14.2 指定したバージョンが使用されているのが確認できました。 npmコマンドも打てるようになります。 $ npm -v 8.5.0 原因は何? わかりませんでした。 数日前まで問題なくnpmコマンドが打てていたのに、ある日突然といった形です。 エラー文で検索すると同じエラーがmacのアップデートによって発生したと記載がありますので、そちらの可能性が高いと思っています。 pathを通せば解決する? エラー文で検索するとpath関係が原因だと書いてあるサイトがたくさん出てきました。 しかし今回、pathは関係なくnodeをインストールし直す形で解決しました。 もしこの記事の方法で解決できなければ、pathを疑ってみるのもありです。 参考にしたサイト https://qiita.com/sinmetal/items/154e81823f386279b33c https://github.com/hokaccha/nodebrew
- 投稿日:2022-03-23T15:02:00+09:00
Mac (Intel cpu)でEigenがコンパイルエラー
C++の数値計算コードの中で Eigen を利用しているが、最近からエラーがでてビルドできなくなった。(エラーはNumTraits.h, Complex.h, MathFunctions.h, XprHelper.h などに。) Use of overloaded operator '*' is ambiguous (with operand types 'int' and 'Eigen::GenericNumTraits<float>::(unnamed enum at /usr/local/Cellar/eigen/3.4.0_1/include/eigen3/Eigen/src/Core/NumTraits.h:154:3)') ... No matching function for call to 'pload' ... Cannot take the address of an rvalue of type 'typename Eigen::internal::real_ref_retval<typename Eigen::internal::global_math_functions_filtering_base<complex<float>>::type>::type' (aka 'int') ... Multiple overloads of 'run' instantiate to the same signature 'const Eigen::internal::real_ref_impl<const std::complex<float>>::RealScalar &(const std::complex<float> &)' (aka 'const std::complex<float> &(const std::complex<float> &)') ... No viable conversion from 'const Eigen::SparseMatrix<double, 1>' to 'OtherCopy' (aka 'int') 現象 Intel CPUの Mac でこの問題が発生して、M1 Macでは問題なくビルドできた。おそらく clang-1316.0.21.2 にアップデートされた後の現象。 解決策 Eigenのヘッダファイルを先に読み込むように順番を入れ替えたら解決した。(SuiteSparse や MersenneTwister なども使っていて、何らかの干渉があるのだろうけどまだ原因を特定できていない) Eigen のFAQにそのような記述があった。 https://eigen.tuxfamily.org/index.php?title=FAQ#Compilation
- 投稿日:2022-03-23T09:28:20+09:00
DockerよりMySQLを使用する
Dockerを通じてMySQLを使⽤するための起動や使⽤方法について記録しました。 環境 macOS Big Sur 11.1 (Silicon m1 chip) Docker 20.10.6 事前準備 MySQL Workbench MySQL Workbench は、データベースアーキテクト、開発者、DBA のための統合ビジュアルツールです。(公式サイトより) インストールの仕方は主に二つあります: 公式サイトで提供されたインストーラにてインストールします。 macOSの場合は、homebrewでのインストールが可能です。 Docker環境でDBに接続する手順(MySQL) MySQLのイメージファイルをpullするには、MySQLのDocker Hubで使用したいバージョンのTagを指定します。 M1 Macを使っているので CPU アーキテクチャは ARM ですが、公式リファレンスにも、「Intel イメージの実行には、エミュレーションのもとで--platform linux/amd64をつけて実行することが必要です。 特に mysql イメージは ARM64 向けには利用できません。 これに対する当面の対処としては mariadb イメージを利用してください。」という記述があります。色々と調べたら、この記事により、platform を linux/x86_64 に指定することでミュレーションとして動作することが解りましたので、この方式で進めます。 $ docker pull --platform linux/x86_64 mysql:8 8: Pulling from library/mysql 15115158dd02: Pull complete d733f6778b18: Pull complete 1cc7a6c74a04: Pull complete c4364028a805: Pull complete 82887163f0f6: Pull complete 097bfae26e7a: Pull complete e1b044d6a24f: Pull complete cd2978bd4d12: Pull complete 28bce5cc1677: Pull complete 907b6d695760: Pull complete c5049403458b: Pull complete f360718d6f4e: Pull complete Digest: sha256:0eb33f0094ef5351639d9d9847c963ee9f22f5631cde046babd4ec239aaeaf06 Status: Downloaded newer image for mysql:8 docker.io/library/mysql:8 イメージがうまくpullされたか確認します。 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8 c1558761f285 3 days ago 519MB 作業用ディレクタリを作成します。 $ mkdir docker_mysql $ cd docker_mysql 先ほどpullしたMySQLイメージでコンテナを回すため、作業用ディレクタリに以下のYAMLファイル(docker-compose.yml)を作成ます。 # docker-compose.ymlのバージョン version: "3.8" # services以下にmysql8コンテナの設定を書く # services.mysql8.image: 使用するイメージ名称。 # services.mysql8.container_name: コンテナ名称。 # services.mysql8.platform: M1 Macで起動できるように linux/x86_64 を指定する。 # services.mysql8.volumes: マウント・パス # services.mysql8.environment: 環境変数 # services.mysql8.ports: 公開用のポート services: mysql8: image: mysql:8 container_name: mysql8 platform: linux/x86_64 volumes: - ~/mysql-docker-data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 12345 MYSQL_DATABASE: mydb ports: - "3306:3306" services.environment.MYSQL_ROOT_PASSWORDは接続際に使用するパスワードです。 YAMLファイルを作成したら、docker-composeでコンテナーをYAMLファイルに書いてあった設定の通りに起動します。 $ docker-compose up -d Creating network "docker_mysql_default" with the default driver Creating mysql8 ... done コンテナーがうまく起動されたか確認します。以下の結果が表⽰されたらDocker環境のDBにの接続する準備は完了です。 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8583e916916e mysql:8 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql8 以下のコマンドでdocker-compose.ymlで設定したパスワードで接続し、MySQLモニターに⼊ります。 $ docker exec -it mysql8 mysql -u root -p Enter password: 12345 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.28 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> これでDBへの接続が完了です。 MySQL workbenchの使用 コンテナーが起動されたら、MySQL Workbenchを起動し、ポート3306(YAMLファイルに設定したポート)に接続してください。MySQL Workbenchの起動画面が表示されます。 DB接続にはYAMLファイルに設定したパスワードを入力します。 OKをクリックしたら、MySQL Workbenchが使えます。 コンテナの停止、削除 コンテナを停止するときには以下のコマンドを入力します。 $ docker stop mysql8 コンテナを削除するには以下のコマンドを入力します。 $ docker rm mysql8 参考サイト一覧 https://phoenixnap.com/kb/mysql-docker-container https://matthung0807.blogspot.com/2020/08/docker-mysql.html
- 投稿日:2022-03-23T08:37:24+09:00
ラズパイをVNC接続する
1 ラズパイ編 1.1作業前確認 スタート画面の「設定」 -> 「Raspberry Pi の設定」を押下。 「インターフェズ」タブの「VNC」ボタンがグレーアウトしていること。 ※グレーアウトしておらずONにできた場合、項番「1.3realVNCの設定」まで飛ばす。 1.2realVNCインストール Pi.LXTerminal $ sudo apt update $ sudo apt upgrade $ sudo apt install realvnc-vnc-server スタート画面の「設定」 -> 「Raspberry Pi の設定」を押下。 「インターフェズ」タブの「VNC」ボタンをONにできること。 1.3realVNCの設定 画面右上の「VNC」アイコン(マウスで触れると「VNC Server - Server Mode」と表示)を押下し、「VNC Server」画面を表示させる。 右上の「三」ボタンを押下し、設定を変更する。操作箇所は以下の通り。 SecurityのEncryptionを Prefer offに、Authenticationを VNC passwordに変更 Users&PermissionのStandard userをダブルクリックしてパスワードを設定 上記が終了したら、「Apply」を押下後、「OK」を押下 ラズパイ側の設定は終了です。 2 操作端末編 windows版 現在調査中 mac版 Finderで「command + K」を押下して「サーバへ接続画面」を開く。 サーバアドレス欄に vnc://raspberrypi.local を入力して「Enter」を押下。 接続できないメッセージを確認する。 ここでmacを再起動。上記の手順でサーバアドレスを入力して「Enter」を押下。 パスワード入力を求められるので、「1.3realVNCの設定」で設定したパスワードを入力。 これで接続されるはずです。 できない場合はmac再起動からやり直してください おまけ リモート - ローカル間でファイル転送ができると作業ペースが上がります。 そんなときにFTPソフトがおすすめです。 筆者はMacerなのでFileZilla を使用しています。(Win版、Linux版あるよ!!) ダウンロード先はここ ホストの欄はraspberrypi.localかIP(RealVNCの「VNC Server」画面にIP記載あり) ユーザー名はデフォルトならpi パスワードはデフォルトならraspberry(ラズパイのOSに設定したパスワード) ポートの欄は22 でクイック接続したら繋がります!!(隣の逆三角おしたら履歴出ます。) そしたら多少は作業が捗るかもです あとがき 「1 ラズパイ編」をコマンドベースで操作したいですね。そしたらモニターいらずでVNC接続できるんですけど、realVNCの設定画面ってどうやってひらくんですかねぇ。 自分用 → VNCが設定できない場合はこんな感じらしい windows版の記述は自分がメイン端末をwindowsにしたときにまた記述したいと思います。 参考文献 ↓filezillaはこちら↓