Intel MacからM2 Mac変更時のHomebrew
Intel MacからM2 Mac変更時の初期環境構築時にHomebrewの設定をしたときのメモ
やりたいこと
Intel用の不要なバイナリを削除して、Homebrewを入れ直す
前提
Timemachineを使って、Intel MacからM2 Macへ全データの移行済み
行った作業
HomebrewのIntel用バイナリを削除
HomebrewのAppleSilicon用のバイナリをインストール
- 「Rosettaで開く」のチェックを外し、Terminalを開く
uname -m
コマンドで、arm64であることを確認する- 下記コマンドを実行し、Homebrewをインストールする
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
説明
1. HomebrewのIntel用バイナリを削除
homebrewの削除コマンドを単にTerminalで叩いても、Apple Silicon用の /opt/homebrew
を見に行ってしまうので、Intel用としてコマンドを実行する必要がある。そのために、TerminalをRosettaで開く。
Homebrew削除時には以下のログが出力された。一部権限不足で削除ができていない
/Users/username/Library/Caches/Homebrew/ /usr/local/Caskroom/ /usr/local/Cellar/ /usr/local/bin/brew -> /usr/local/bin/brew Are you sure you want to uninstall Homebrew? This will remove your installed packages! [y/N] y ==> Removing Homebrew installation... Warning: Failed to delete /usr/local/Caskroom rm: /usr/local/Caskroom: Permission denied Warning: Failed to delete /usr/local/Cellar rm: /usr/local/Cellar: Permission denied ==> Removing empty directories... Password: ==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Caskroom /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -name .DS_Store -delete ==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Caskroom /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -depth -type d -empty -exec rmdir {} ; ==> Homebrew uninstalled! The following possible Homebrew files were not deleted: /usr/local/.com.apple.installer.keep /usr/local/Frameworks/ /usr/local/Homebrew/ /usr/local/bin/ /usr/local/etc/ /usr/local/include/ /usr/local/lib/ /usr/local/opt/ /usr/local/sbin/ /usr/local/share/ /usr/local/texlive/ /usr/local/var/ You may wish to remove them yourself.
参考
Raspi環境構築
OSのアップグレード後、rebootかけたらOSが立ち上がらなくなりました。reboot前にps aux
で見たら、アップグレードプロセスが生きていたので、ちゃんと完了していなかったのかもしれない。
OS入れ直して位置から環境を作り直す。
やること
- OS install
- ssh接続
- RasberryPiのusername変更
- DNS Serverにする
- OpenVPN構築
- Docker install
- Postgresql install
- reboot後にwifiが見つけられなくなった
OS install
Raspberry Pi ImagerでUbuntu Server 20.4.3 LSTを入れる
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
ssh接続
公開鍵認証を許可する。 /etc/ssh/sshd_config
を編集。
PubkeyAuthentication yes
パスワード認証をきる。 /etc/ssh/sshd_config
を編集。
PasswordAuthentication no ChallengeResponseAuthentication no
最後に、 システム環境設定の共有のリモートログインをOFFにしてONする。
RasberryPiのusername変更
Raspbianでpiユーザ名とパスワードをうまいこと変更する - Qiita
DNS Serverにする
$ sudo apt install dnsutils # nslookup等使うため
$ sudo apt install dnsmasq
dnsmasqの設定ファイル変更
元の設定ファイルを変えたくないので、/etc/dnsmasq.d/local-dnsmasq.conf
を作成する。
port=53 domain-needed bogus-priv local=/local-domain.com/ no-hosts addn-hosts=/etc/local-hosts expand-hosts domain=local-domain.com
名前登録
上でaddn-hostsに設定した/etc/local-hostsファイルを作ります。 この中に登録したいサーバーの名前を登録します。
192.168.0.1 server01.local-domain.com server01 192.168.0.2 server02.local-domain.com server02 192.168.0.3 dns-server.local-domain.com dns-server
/etc/network/interfaces.d
以下にinterfacesファイルを作る。
dns-server 127.0.0.1 8.8.8.8
を記入。※この作業いるんだっけ。
hostnameの変更を行っておく。 /etc/hosts
と/etc/hostname
の両方で変更する必要がある。 raspberrypiからdns-serverに変更します。 rebootすれば変わっていることが確認できます。
OpenVPN構築
ネットワークのことは詳しないのですが、以下のツールで簡単に構築可能。
Ubuntu 20.04でOpenVPNサーバーをセットアップ・設定する方法 | DigitalOcean
GitHub - pivpn/pivpn: The Simplest VPN installer, designed for Raspberry Pi
PiVPNによるOpenVPNのインストール - とある社畜の頭脳整理
firewall関連について
サブネット10.8.0.0/24にクライアントが割り振られているとします。 インターフェイスはwlan0で接続しているとします。
マスカレードの設定
$ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o wlan0 -m comment --comment openvpn-nat-rule -j MASQUERADE
openvnのポートを開けます。1194/udpがデフォルトです。
$ sudo firewalld-cmd --permanent --add-service=openvpn
VPN接続先のネットワークのマシンへの接続を許可します。これしないとVPN繋いだ状態で外のネットワークに接続できなかったです。
$ sudo firewall-cmd --permanent --zone=trusted --add-interface=tun
global ipの定期確認
固定global ipを契約しているわけではないので、ipが変わる可能性あり。定期的に確認して、前回と変更がある場合通知を出す。
手順
- global ipを格納して前回のipと確認
- 異なる場合、指定したメールに通知を送る
- 調べたipをファイルに記録
バッチファイルcheck_ip.sh
作成
ip=`curl inet-ip.info` previous_ip=cat /tmp/previous-globalip.txt if [ "$ip" != "$previous_ip" ] ; then echo "NOTE : My global ip changed The new ip is "$ ip | mail -s "NOTE: Home Global ip changed" -r system@raspi.home.com myaccount@gmail.com; fi echo $ip > /tmp/previous-globalip.txt
また、定期実行はcronで行う。
$ sudo apt install crontab $ echo "00 7 * * * check_ip.sh" > cron.conf $ crontab cron.conf
Docker install
Postgresql install
reboot後にwifiが見つけられなくなった
下記ファイルに1行付け足す。
/etc/wpa_supplicant/wpa_supplicant.conf
network={ ssid="XXXXX" psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx scan_ssid=1 }
なんで急にwifiが見つけられなくなったのかはよくわからない。
-> dhcpcd がうまく動いていなかった。 理由不明。
$ sudo systemctl restart dhcpcd
RasPi: PostgreSQL install
install
$ sudo apt-get install postgresql
setting
パスワードの設定
postgresユーザーができるので、このユーザーのパスワードを設定する。
$ sudo passwd postgres
ユーザーの追加
postgresにスパーユーザとして入る
$ su - postgres
postgresqlに接続して作業
$ psql
ユーザーを作成する
postgres=# CREATE ROLE sampleUser;
ログイン、データベース作成できるようにするには以下で作成。
postgres=# CREATE ROLE sampleUser LOGIN CREATEDB;
削除をするときは、
postgres=# DROP ROLE sampleUser;
ユーザーを確認してみます。
postgres=# SELECT ROLNAME FROM PG_ROLES;
データベースの作成
postgres=# CREATE DATABASE sampleDb OWNER sampleUser;
DB確認
postgres=# \l
ログイン
$ psql -U username -d postgres
postgresqlサーバーにリモートからアクセスする
ポートを開ける
$ sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent $ sudo firewall-cmd --zone=public --add-service=postgresql --permanent $ sudo firewall-cmd --reload
postgresqlサーバー側のアクセス設定
各ファイルの場所に注意。
$ vim /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '*'
に変更
$ vim /etc/postgresql/9.6/main/pg_hba.conf
host all all 192.168.0.0/24 md5
を最後に追加
参考サイト
【Raspberry Pi】PostgreSQLをインストールする(外部から接続できるまで) - りなっくすとらずぱい!
ファイルから SQL を読み込む (MySQL, PostgreSQL, SQLite3) - CUBE SUGAR CONTAINER
RasPi: virtualenvで仮想環境を作る
install
これに先立ちpython3.7を入れておく。
pipでvirtualenvを入れる。
なんかいろんなtipsをみる限り、sudoをつける必要あり。どこにinstallされているかわかるように、--verbose
をつけておく。
$ sudo pip3 install virtualenv --verbose
コマンドとして使えるようになる。
create
$ virtualenv -p python 3.6 env-name
activate
$ source env-name/bin/activate
deactivate
$ deactivate
RasPi: python 3.7をいれる
virtualenvでpython3.6を入れたいので、Raspiにpython3.7.2を入れる。
$ sudo apt install libffi-dev libssl-dev openssl $ wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz # 3.7.2をmake $ tar zxvf Python-3.7.2.tgz $ cd Python-3.7.2 $ ./configure $ make $ sudo make install # pipをupdate $ sudo pip3 install --upgrade pip