顯示具有 macos 標籤的文章。 顯示所有文章
顯示具有 macos 標籤的文章。 顯示所有文章

2020-11-19

macos從El Capitain (10.11)升級到Mojave (10.14)

 用El Capitain撐了許久,不升級也不行了,一堆軟體或外掛套件的更新都要求要新一點的OS版本,像homebrew或VSCode一堆套件都要新的作業系統library才有辦法compile & install。

升級時注意事項:

1.先重置nvram跟smc再升級,不然很有可能升級過程中卡住,要是真的卡住就強制關機,再用command+r重裝。

2.重新安裝XCode及command line tools for xcode
https://developer.apple.com/download/more 下載即可,注意mojave支援的XCode最高版本為11.3.1,安裝Xcode前先把舊的Xcode刪掉再複製新的過去,不然會卡很久。

3.homebrew的話,先brew update-reset & brew update,重置repo資料庫,然後brew doctor看看有沒有什麼問題,有些已經不存在formula的可以 brew uninstall --force package-name & rm -rf /usr/local/Caskroom/package-name。

4.java的話,決定先移除oracle java,改安裝openjdk:

brew remove --ignore-dependencies java
brew remove --ignore-dependencies java8

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane
sudo rm -fr ~/Library/Application\ Support/Java
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8_xxx.jdk

brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
brew cask install adoptopenjdk/openjdk/adoptopenjdk11

brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
<重開command window>
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
jenv global 1.8 或 jenv global 11 設定其中一個預設java版本

ref:
https://www.java.com/zh-TW/download/help/mac_uninstall_java.html
https://www.jenv.be/
https://github.com/AdoptOpenJDK/homebrew-openjdk

2019-10-15

VirtualBox 5 安裝 macOS High Sierra

因為有跨平台開發的需求,所以Windows、GNU/Linux、macOS都習慣裝VM來做測試,其中以安裝macOS最麻煩...

就自已的經驗,用vmware安裝macos最穩定好裝,virtualbox裝macos則問題非常多,可以的話推薦用vmware,這裡用virtualbox裝只是想試試是否相容性有進少步(結果證明是自找麻煩)

以下為安裝High Sierra步驟,若要安裝Mojave或Catalina應該也行,只是VirtualBox的macOS預設最高版本只能選High Sierra,因此以安裝High Sierra為範例。

0.安裝VirtualBox及其extension pack:
https://www.virtualbox.org/wiki/Downloads

1.下載作業系統:
若在APP Store找不到你要的作業系統,可利用mas找出並下載曾經下載過的macOS:
https://github.com/mas-cli/mas

各版本代號如下:
macOS 10.7 Lion – 444303913
macOS 10.8 Mountain Lion – 537386512
macOS 10.9 Mavericks – 675248567
macOS 10.10 Yosemite – 915041082
macOS 10.11 El Capitan – 1147835434(適用無法升級10.12的舊機型)
macOS 10.11 El Capitan – 1018109117
macOS 10.12 Sierra – 1127487414
macOS 10.13 High Sierra – 1246284741

2.將作業系統APP轉為ISO檔:
假設作業系統APP已經下載應用程式中,執行以下指令:
hdiutil create -o /tmp/HighSierra.cdr -size 5530m -layout SPUD -fs HFS+J
hdiutil attach /tmp/HighSierra.cdr.dmg -noverify -mountpoint /Volumes/install_build
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/install_build
mv /tmp/HighSierra.cdr.dmg ~/Desktop/InstallSystem.dmg
hdiutil detach /Volumes/Install\ macOS\ High\ Sierra
hdiutil convert ~/Desktop/InstallSystem.dmg -format UDTO -o ~/Desktop/HighSierra.iso
mv ~/Desktop/HighSierra.iso.cdr ~/Desktop/HighSierra.iso
rm ~/Desktop/InstallSystem.dmg

此時桌面會產生HighSierra.iso,將它複製到要安裝VM的電腦上

3.新增VirtualBpx VM,作以下設定:

  • 新增虛擬機,名稱為MacOS,作業系統類型為 macOS 10.13 High Sierra (64-bit),動態硬碟至少60GB
  • 系統 > 主機版 > 開機順序,取消軟碟
  • 系統 > 主機版,至少4096mb記憶體
  • 系統 > 處理器,選擇2核心
  • 顯示 > 螢幕,設定128mb記憶體,2D/3D加速(要看你的電腦有無支援)
  • 儲存 > 儲存裝置確定為 SATA/AHCI,並掛載剛剛產生的作業系統iso檔
4.在終端機下執行以下指令(若在windows環境,需先進入VirtualBox安裝資料夾執行):
VBoxManage modifyvm "MacOS" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "MacOS" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "MacOS" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

5.將VM開機,此時會從光碟開機,並進入安裝畫面,這邊開始就是重點:
先開啟磁碟工具,並將硬碟格式化成HFS+,千萬不要選APFS!
不然你的VM設定就要重來一遍了,因為VirtualBox 5不認識APFS, 裝了也只會是無法開機!
假設這裡你把硬碟取名為「Macintosh HD」

之後離開磁碟工具,再從上方選單打開終端機,並執行以下指令:
/Volumes/Image\ Volume/Install\ macOS\ High\ Sierra.app/Contents/Resources/startosinstall --volume Macintosh\ HD --converttoapfs NO --agreetolicense

若遇到沒有反應,或顯示「程式已毀損」之類的,很可能又是開發者憑證時間過期的問題,下指令把時間往前調,如:
date 010100002018 或 date 010100002017
然後再重打安裝指令

此時會將安裝檔複製到硬碟中,複製完會重開機,
此時將VM立即關機並退出光碟,然後再次開機,就會進入到Shell畫面,執行以下指令:
打exit退出Shell
選擇 Boot Maintenance Manager > Boot From File >
選第二個EFI選項 > macOS Install Data > Locked Files > Boot Files > boot.efi

此時就會真正開始安裝macOS了!

6.安裝完系統,在macOS終端機執行以下指令以解除軟體安裝限制:
sudo spctl --master-disable

若你是用VirtualBox 6以上的版本安裝,直接從VirtualBox選單選擇插入Guest Additions光碟,並執行VBoxDarwinAdditions.pkg以安裝guest additions,裝完後若有問題可參考以下鏈結解決:
https://stackoverflow.com/questions/41691803/how-to-install-guest-addition-in-mac-os-as-guest-and-windows-machine-as-host/43715619

若是VirtualBox 5,執行以下指令以修正解析度:
VBoxManage setextradata "MacOS" VBoxInternal2/EfiGraphicsResolution 1920x1080

7.將自已加入vboxusers群組,以正常連接外部裝置(如usb裝置等):
sudo groupadd vboxusers
sudo usermod -aG vboxusers ${USER}
再重開機

2019-01-18

macbook 藍芽作動不正常問題排除


當macbook的藍芽符號出現灰色,或者無法配對、無法找到裝置…等等奇怪的問題,可以先從軟體方面先去解決看看:


  1. 刪除 /Library/Preferences/com.apple.Bluetooth.plist 並重開機
  2. 重置NVRAM
  3. 重置SMC
  4. 開機時按住D或Option + D,執行系統檢測,看是硬體或軟體問題
  5. 若檢測出是軟體問題,開機時按住CMD+R,重新安裝系統(安裝完使用者資料及程式會保留,不用擔心)

若是硬體問題,那麼可能就得更換藍芽零件,淘寶賣價大約是台幣三四百元。
拆的時候請使用尺寸適合的十字鏍絲起子,以免造成鏍絲崩牙而無法拆裝。
安裝完後若仍無法作動(前提是更換上的藍芽零件沒有問題),那麼重複前面123的步驟應該就可正常使用。

2018-01-22

mac安裝composer & php-cs-fixer

安裝 php 7.2
brew update
brew tap homebrew/dupes
brew tap homebrew/php
brew install php72 (需php >= 7)
mv /usr/bin/php /usr/bin/php55
sudo ln -s /usr/local/bin/php /usr/bin/php

which php
# mac原本php
/usr/bin/php
# Homebrew的php
/usr/local/bin/php

# 重新安裝 PHP 7.2
brew reinstall php@7.2
# 測試重建鏈
brew link --overwrite --force --dry-run php@7.2
# 重建鏈結
brew link --overwrite --force php@7.2

安裝composer (php >= 7)
brew install composer

安裝xdebug
pecl install xdebug

安裝 php-cs-fixer
composer global require friendsofphp/php-cs-fixer
修改~/.profile
加入
export PATH="$PATH:$HOME/.composer/vendor/bin"
source ~/.profile
(或用brew: brew install homebrew/php/php-cs-fixer)

Bitnami Nginx Stack 取消 php opache

Bitnami Nginx Stack 預設是有PHP Opcache的,
因此修改php時無法即時看到修改結果,
當開發機使用時,讓人覺得很鬧。

修改
/Applications/nginxstack-1.10.1-2/php/etc/php.ini

opcache.enable=0

若安裝的是LAMP,需再修改
/Applications/nginxstack-1.10.1-2/apache2/conf/httpd.conf

#Include conf/pagespeed.conf
#Include conf/pagespeed_libraries.conf
給註解起來


ref:
https://docs.bitnami.com/general/infrastructure/lamp/#how-to-disable-the-cache-in-the-server

2018-01-17

WAMP使用PHP7

依WAMP的需求安裝Visual C++ Redistributable 2015
https://www.microsoft.com/en-us/download/details.aspx?id=48145

下載PHP 7
http://windows.php.net/download/
選擇x86或x64(依WAMP版本決定)Thread Safe版本

建立 wamp\bin\php\php7.2 資料夾
從 wamp\bin\php\php5.x 複製 php.ini 及 wampserver.conf 到 wamp\bin\php\php7.2

修改 php.ini
將 extension_dir 修改成 php7.2路徑
將 track_errors = On 註解掉
將 extension=php_mysql.dll 註解掉
複製 php_xdebug-2.6.0beta1-7.2-vc15-x86_64.dll(TS)到 wamp\bin\php\php7.2\zend_ext
在[xdebug]新增 xdebug.remote_enable = on
在[xdebug]新增 xdebug.remote_autostart = on
複製一份 php.ini,改名為 phpForApache.ini (wamp\bin\apache\apache2.4.9\bin\php.ini會link到此檔,而且apache會載入apapche/bin/php.ini!)

※注意:執行wamp時,看一下phpinfo()中的php.ini路徑是否正確,以及xdebug模組是否順利載入。
若是跑php CLI要載入xdebug,跑一下php --ini,看一下載入的php.ini路徑是否正確,
或執行php -S localhost:80,看一下phpinfo()看載入的php.ini路徑是否正確

修改 wampserver.conf
phpConf['apache']['2.4']['LoadModuleName'] = 'php7_module';
$phpConf['apache']['2.4']['LoadModuleFile'] = 'php7apache2_4.dll';

啟動WAMP並選擇PHP版本
Start Wamp > PHP > Version > 7
(Apache 需 >=2.4 )