MacOS M1系统配置

MacOS 使用了ARM64芯片之后,许多App还在逐渐的适配中,一些未适配的App使用上就会有些麻烦,这里记录MacOS配置过程,也专门对M1芯片的特殊情况予以记录。

Brew安装

brew官方源在github上,国内安装非常缓慢。虽然安装之后可以切换到国内镜像,但有可能安装过程就会失败,因此我们需要想办法加速安装过程。

最新的brew安装脚本换成了bash 脚本:https://raw.githubusercontent.com/Homebrew/install/master/install.sh下载这个脚本之后直接执行即可安装。无奈国内安装时github的下载速度非常喜人,所以建议直接修改install.sh脚本中的源地址为国内的源,使用国内镜像安装。先在脚本中修改配置:

HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"

然后再安装,安装之后会直接使用国内镜像安装。

安装过程中如果中断退出,导致无法安装,可以使用卸载脚本https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh 执行清除,然后重新安装。

Mac下brew默认安装在/opt/homebrew下,安装之没有cask源,可以执行以下命令手工安装:

cd /opt/homebrew/Library/Taps/homebrew
git clone https://mirrors.ustc.edu.cn/homebrew-cask.git

如果使用bash,请在~/.bashrc,如果使用zsh,在 .zprofile.zshrc中添加以下行:

eval $(/opt/homebrew/bin/brew shellenv)

然后重新打开一个新的命令行终端,开心的安装你想安装的App吧:

brew install microsoft-office
brew install iterm2
brew install opencv

App对M1的支持情况

  • VSCode

    2021.3,VSCode已发布release版版支持M1。

  • numpy/opencv

    2021.3,numpy/opencv已经可以正常安装(直接使用brew安装,不要pip安装)

    brew install numpy
    brew install opencv
    
    import nump as np
    import cv2 as cv
    print(cv.__version__)
    print(np.__version__)
    

MacOS 杂项

  • 内置Apache管理 Mac内置了Apache,可以通过以下命令查看配置选项或者重启:

    sudo /usr/sbin/apachectl -V
    sudo /usr/sbin/apachectl restart
    
     禁止或开启Apache自动启动,可以执行:
       
     ```shell
     sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
     sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
       
       
       
     需要注意的是,最新版本的Apache不再支持PHP模块,因此需要使用Brew来安装PHP,利用fastcgi来支持:
     在/private/etc/apache2/other目录下增加php.conf:
       
    
     <VirtualHost *:*>
        ProxyPassMatch "^/(.*\.php(/.*)?)$" "fcgi://127.0.0.1:9000/Users/uio/www/$1"
     </VirtualHost>
     <FilesMatch \.php$>
         # 2.4.10+ can proxy to unix socket
         # SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"
         # Else we can just use a tcp socket:
         SetHandler "proxy:fcgi://127.0.0.1:9000"
     </FilesMatch>
       
     <IfModule dir_module>
         DirectoryIndex index.html index.php
     </IfModule>
    
     然后执行
     ```shell
     brew services start php
     # 查看brew 管理的services
     # brew services list
    
     即可启动php-fpm,可以正常的访问PHP脚本了。