- macOS Mojave 10.14.5 (Sierra) → 10.14.6 → 10.15 (Catalina)
- Xcode 11.0 (11A420a)
- iTerm2 Build 3.3.4
- ForkLift 3.3.4
- Homebrew 2.1.11
- Sublime Text 3.2.2
- Visual Studio Code 1.39.1
- LibreOffice 6.3.2.2
- Gimp 2.10
- Python 3.8.0 (pyenv)
- Android File Transfer 1.0.12
「mac」タグアーカイブ
[tar] 未知の拡張ヘッダキーワード
症状
linuxで xxx.tar.gz を展開すると「未知の拡張ヘッダキーワード」エラーが大量に出力される。
エラーメッセージ例
1 2 3 4 |
tdiary-v5.0.10/benchmark/benchmark_io_default.rb tar: 未知の拡張ヘッダキーワード `SCHILY.dev' を無視 tar: 未知の拡張ヘッダキーワード `SCHILY.ino' を無視 tar: 未知の拡張ヘッダキーワード `SCHILY.nlink' を無視 |
macOSにおけるカタカナファイル名の文字化け
Unicodeは濁音(『が』や『ば』など)や半濁音(『パ』や『ピ』)を1文字として扱います。一方で濁点『 ゙ 』(U+3099) と半濁点『 ゚ 』 (U+309A) も定義しています。この結果、Unicodeでは『が』を『か』+ 『 ゙ 』の 合成文字 として表現することもできます。
- WindowsやLinuxのファイルシステムは濁音や半濁音を1文字として扱う NFC (Normalization Form Canonical Compression) を採用しています。
- MacOSのファイルシステム(HFS+)は本体文字と濁点・半濁点を分離して扱う NFD (Normalization Form Canonical Decompression) を採用しています。俗にいう uft-8-mac です。
subversionやscpなど NFC と NFD の差異を考慮していないツールを使うと、Windowsで保存した濁音/半濁音を含むファイル名が文字化けします。場合によってはコマンドが失敗します。
Macに接続されたUSBプリンタを強制切断
症状
libusbで開発したアプリが以下のエラーを表示して停止する。
1 |
libusb: error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access |
※ システム環境設定 => プリンタとスキャナ から該当するUSBプリンタを削除しても、再起動後にふたたび見つかる。
接続されているUSBデバイスの情報表示
1 |
$ system_profiler SPUSBDataType |
解決策
以下の3つのファイルを削除して再起動する。
/etc/cups/printers.conf
/etc/cups/printers.conf.O
/etc/cups/printers.conf.pre-update
/Users/JaneDoe/Library/Preferences/com.apple.systempreferences.plist
Macの機種固有文字コード
Macの修飾キー、特殊キーボードキーの文字コード。
macOSに導入したnginx
起動 / 停止 / 再起動
起動
1 |
$ sudo nginx |
停止
1 |
$ sudo nginx -s stop |
再起動
1 |
$ sudo nginx -s reload |
設定ファイルの場所
/usr/local/etc/nginx
macOS SierraでsshのパスワードをKeyChainに記憶
macOS Sierraでは(デフォルト設定で)sshのパスワードをKeyChainに記憶しない。
~/.ssh/config
に UseKeychain と AddKeysToAgent を追加する。
1 2 3 4 5 6 |
Host myHost HostName xxx.xxx.xxx.xxx UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa User alice |
macOSのsed
macOS(OS X)のsedはBSD系UNIXのためGNU(System V系UNIX) sedと振る舞いが異なる。
上書き保存のときはバックアップファイルの拡張子を指定する必要がある。
1 |
$ sed -i '.bak' 's/Alice/Bob/' greeting.txt |
実行結果
- greeting.txt : 編集(置換)実行後のファイル
- greeting.txt.bak : 編集(置換)実行前のオリジナル(バックアップ)ファイル
-
※編集(置換)が実行されないケースでも編集後のファイルのタイムスタンプは更新されて、バックアップファイルが作成される。
下記のようにバックアップファイルの拡張子を指定しなければ、バックアップファイルは作成されない。
1 |
$ sed -i '' 's/Alice/Bob/' greeting.txt |
macOS 自動起動
xxx.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>myjob</string> <key>ProgramArguments</key> <array> <string>/Users/Alice/scripts/myscript.sh</string> </array> <key>LowPriorityIO</key> <true/> <key>Nice</key> <integer>1</integer> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>18</integer> <key>Minute</key> <integer>01</integer> </dict> <key>StandardOutPath</key> <string>/usr/local/var/log/myscript.log</string> <key>StandardErrorPath</key> <string>/usr/local/var/log/myscript.log</string> </dict> </plist> |
起動コマンド
1 |
$ sudo launchctl load xxx.plist |
停止コマンド
1 |
$ sudo launchctl unload xxx.plist |
拡張子 xip を扱う
背景
Xcode8 betaより、Xcodeの配布パッケージがdmg形式からxip形式に変更された
扱い方
Finderでダブルクリックすれば、標準のアーカイブユーティリティが立ち上がり展開できる。ただしXcodeの場合は数十分かかる。