雖然是mac老司機,但每次裝機總會碰到一些小問題需要臨時上網搜索一下解決方案,所以留下些文字備忘一下: 1. 研發用的新機最好選擇語言用英文版,中文版通常的使用沒問題,但很多的地方的翻譯都不准確,而且有一些測試不充分的BUG。比如我曾經碰到過配置IP地址,多個IP地址之間應當是用英文分號分割,結果也 ...
雖然是mac老司機,但每次裝機總會碰到一些小問題需要臨時上網搜索一下解決方案,所以留下些文字備忘一下:
- 研發用的新機最好選擇語言用英文版,中文版通常的使用沒問題,但很多的地方的翻譯都不准確,而且有一些測試不充分的BUG。比如我曾經碰到過配置IP地址,多個IP地址之間應當是用英文分號分割,結果也變成了中文分號,新版本雖然修改了這個BUG,但類似小問題經常還是會有。
- Xcode優先安裝,後面其它許多的開源軟體都依賴Xcode的命令行。
正常情況下,Sierra和High Sierra已經不建議在Recovery狀態關閉系統保護功能,原來依賴關閉系統文件許可權,註入一些功能的軟體,大多升級版本也已經不再需要寫入系統文件區。所以我也建議不要再關閉系統文件保護功能,這樣系統的安全性會好很多,即便出現可能的病毒,也不會導致系統基礎崩潰。
如果一定要關閉,重啟時按⌘R鍵進入恢復模式,啟動後打開終端程式,在其中使用如下命令關閉系統文件保護:csrutil disable
- 因為3的原因,系統內置的python/ruby等,不要再跟以前一樣升級,如果需要,另外安裝一個新版本即可。
安裝Homebrew,其它開源軟體包,儘量統一使用Homebrew管理:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
通常即便不需要升級python,也還是要重新安裝一個,因為python的一些擴展包你也可能碰到需要升級,這也是需要自己安裝一份有讀寫許可權的python。別心疼那幾十M的空間。
brew install python
另外註意,新版的brew,安裝的python預設是python2.7,程式執行的時候命名為python2。總結一下就是:
python #系統內置的python2.7 pip #系統沒有自帶,如果你自己安裝了pip那對應的是系統的python python2 #用brew自己安裝的python2.7 pip2 #安裝python的時候回自動安裝pip python3 #如果你另外安裝了python3 pip3 #對應python3
所以如果你想繼續安裝tensorflow,應當是使用你另外安裝的pip2或者pip3來安裝,系統內置的python因為擴展包版本不相容又無法改寫,實際無法安裝tensorflow。
使用上面命令行安裝的tensorflow,只有python2環境中才能引用,python3如果要使用,需要用pip3自行安裝。pip2 install tensorflow
- python有些包的提示不是很完整,比如錯誤信息是scipy.misc包中找不到imread,實際上是因為包pillow包沒有安裝,應當使用
pip2 install pillow
安裝。
ruby / gem比python幸運,因為gem可以指定安裝包安裝的路徑,這樣即便系統的版本不滿意,也不一定非要重新整個安裝了。比如:
sudo gem install jekyll bundler -n /usr/local/bin #後面的-n參數就是指定安裝路徑
相對的更換源到國內網站你肯定忘不掉,因為下載包下不動你就想起來了:
#前面要先刪除原來的源,這裡省略 gem sources --add https://gems.ruby-china.org/
調試程式經常會碰到沒有簽名的應用需要運行,所以人為打開許可權控制對於研發人員也是不得已了,雖然這樣有了病毒傳播的風險,但畢竟工作重要:
sudo spctl --master-disable
研發的一些特殊情況可能需要修改EFI分區,載入方式如下:
#首先檢查EFI分區設備名 diskutil list #比如結果是: /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 250.1 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 #建立一個載入點 mkdir /Volumes/efi #掛載,註意設備名跟上面對應 sudo mount -t msdos /dev/disk0s1 /Volumes/efi #後面就可以做自己的事情了
- 有一些小工具想加到Finder工具欄中,是按住⌘鍵不鬆手,然後用滑鼠拖動到Finder工具欄。
- Messager簡訊應用刪除信息太麻煩,option+⌘+backspace可以無提示框直接刪。
開機啟動腳本,有以下幾個路徑可以放置開機啟動腳本的引導配置文件,
LaunchDaemons是在系統引導時執行(boot),LaunchAgents是在用戶登錄的時候執行(login)。#以.plist配置文件的方式 /Library/LaunchAgents/ /Library/LaunchDaemons/ /System/Library/LaunchAgents/ /System/Library/LaunchDaemons/ #以文件夾的方式,文件夾內放置配置文件.plist及相關腳本 /Library/StartupItems/ /System/Library/StartupItems/
/System/Library下的是macOS系統進程使用。/Library是所有用戶使用。
對應的,~/Library中的,上面沒有列,一般用的少,是對應某一個用戶的。
通常用戶自己設置的,需要開機就執行的一些進程一般是放在/Library/LaunchDaemons/之下,有2點需要註意:- 擁有者許可權必須是root:wheel
- 許可權644
新機有時候Spotlight搜索不到剛剛安裝的應用,一般可能是剛剛同時安裝了大量新的應用及拷貝進入了大量新的數據,系統仍然在進行索引。等待一段時間之後如果還搜不到,那可能是有問題了。幾個可能的解決方法,必有一款適於你:
#方法1,刪除索引並重做: sudo mdutil -E /Applications #---------------------------------- #方法2,重新建某目錄索引: mdimport /Applications/ #---------------------------------- #方法3,重新載入系統matedata數據: #關閉spotlight sudo mdutil -a -i off #上傳數據 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist #載入數據 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist #打開spotlight sudo mdutil -a -i on
預設截圖路徑修改
Mac屏幕截圖預設是存在桌面,如果不喜歡可以改一下,方法如下:#參數請修改為自己的目錄,這個是保存在我的下載目錄 defaults write com.apple.screencapture location /Users/andrew/Downloads/ #如果想關閉截圖的陰影還可以加上這一行 defaults write com.apple.screencapture disable-shadow -bool TRUE #重啟界面服務 killall SystemUIServer
讓Finder顯示隱藏文件
defaults write com.apple.finder AppleShowAllFiles -bool true
命令行swift無法執行,報錯缺少一堆庫:
解決辦法:打開Xcode,Preferences->Locations->Command Line Tools,選中當前安裝的版本,正常應當只有一個。如果還沒有安裝,趕快安裝一個,正常情況下如果沒有裝的話,啟動Xcode就會提示你安裝。warning: Swift error in module repl_swift. Debug info from this module will be unavailable in the debugger. warning: Swift error in module dyld. Debug info from this module will be unavailable in the debugger. warning: Swift error in module libz.1.dylib. Debug info from this module will be unavailable in the debugger. warning: Swift error in module libcompression.dylib. Debug info from this module will be unavailable in the debugger. warning: Swift error in module libSystem.B.dylib. Debug info from this module will be unavailable in the debugger. ... warning: Swift error in module libxslt.1.dylib. Debug info from this module will be unavailable in the debugger.
有些程式開機就啟動,有需要的有不需要的。部分是放在System Preferences/Users&Groups->LoginItems中,直接可以刪除,還有些在上面說過的啟動項目文件夾裡面,比如Creative CLoud圖標,在/Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist,可以移出來備份到某處,就不會開機自動啟動了。
先這些吧,想到再補充。