标签 macOS 下的文章

绕过 Apple 启动应用时连接 Apple 服务器的验证。这样可以有效提升应用加载速度。

sudo vim /etc/host

127.0.0.1 ocsp.apple.com

通过使用该工具我们可以轻松调试iOS或macOS的系统推送,我们只需要准备一个证书,准备设备token,就可以直接和 apns 通信并发送推送信息。通常我们可以用次工具判断证书是否正确配置。

Pusher

OS X and iOS application and framework to play with the Apple Push Notification service (APNs)

osx1.png

升级 macOS 10.15.6 后,发现 php 版本号已经升级到了 php7.3

运行 php -v

PHP 7.3.11 (cli) (built: Jun  5 2020 23:50:40) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies

问题

但是比较坑的是默认没有安装 zip 扩展,而 Laravel 是需要 ext-zip 扩展包的:

composer global require laravel/installer

QQ20200901-170526@2x.png

brew 安装 php@7.3

brew update
brew install php@7.3
brew link php@7.3 --force

必须要使用 force

编译安装 php@7.3

本文不再展开,参考这篇文章:https://segmentfault.com/a/1190000022699382

查考资料

discussions.apple.com
install-ext-zip-for-mac

您可以将外置驱动器或备用宗卷用作安装 Mac 操作系统的启动磁盘。

以下高级步骤主要适用于系统管理员以及熟悉命令行的其他人员。升级 macOS重新安装 macOS 不需要可引导安装器,但如果您要在多台电脑上安装 macOS,而又不想每次都下载安装器,这时可引导安装器就会很有用。

创建可引导安装器需要满足的条件

  • USB 闪存驱动器或其他备用宗卷(格式化为 Mac OS 扩展格式),至少有 14 GB 可用储存空间
  • 已下载 macOS Big Sur、Catalina、Mojave、High Sierra 或 El Capitan 的安装器

下载 macOS

在"终端"中使用"createinstallmedia"命令

  1. 连接要用于保存可引导安装器的 USB 闪存驱动器或其他宗卷。
  2. 打开"应用程序"文件夹内"实用工具"文件夹中的"终端"。
  3. 在"终端"中键入或粘贴以下命令之一。这些命令假设安装器位于您的"应用程序"文件夹中,并且"MyVolume"是您所使用的 USB 闪存驱动器或其他宗卷的名称。如果不是这个名称,请将这些命令中的 MyVolume 替换为您的宗卷名称。

Big Sur*:


sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume 

Catalina*:


sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume 

Mojave*:


sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume 

High Sierra*:


sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume 

El Capitan:


sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app 

* 如果您的 Mac 运行的是 macOS Sierra 或更低版本,请使用 --applicationpath 参数和安装器路径,具体方法与在适用于 El Capitan 的命令中完成这个操作的方法类似。

键入命令后:

  1. 按下 Return 键以输入这个命令。
  2. 出现提示时,请键入您的管理员密码,然后再次按下 Return 键。在您键入密码时,"终端"不会显示任何字符。
  3. 出现提示时,请键入 Y 以确认您要抹掉宗卷,然后按下 Return 键。在抹掉宗卷的过程中,"终端"会显示进度。
  4. 宗卷被抹掉后,您可能会看到一条提醒,提示"终端"要访问可移除宗卷上的文件。点按"好"以允许继续拷贝。
  5. 当"终端"显示操作已完成时,相应宗卷将拥有与您下载的安装器相同的名称,例如"安装 macOS Big Sur"。您现在可以退出"终端"并弹出宗卷。

使用可引导安装器

确定您使用的是不是搭载 Apple 芯片的 Mac,然后按照相应的步骤操作:

Apple 芯片

  1. 将可引导安装器插入已连接到互联网且与您要安装的 macOS 版本兼容的 Mac。
  2. 将 Mac 开机并继续按住电源按钮,直到看到启动选项窗口,其中会显示可引导宗卷。
  3. 选择包含可引导安装器的宗卷,然后点按"继续"。
  4. macOS 安装器打开后,请按照屏幕上的说明操作。

Intel 处理器

  1. 将可引导安装器插入已连接到互联网且与您要安装的 macOS 版本兼容的 Mac。
  2. 将 Mac 开机或重新启动后,立即按住 Option (Alt) ⌥ 键。
  3. 当您看到显示可引导宗卷的黑屏时,松开 Option 键。
  4. 选择包含可引导安装器的宗卷。然后点按向上箭头或按下 Return 键。
    如果您无法从可引导安装器启动,请确保"启动安全性实用工具"中的"外部启动"设置已设为允许从外部介质启动。
  5. 根据提示选取您的语言。
  6. 从"实用工具"窗口中选择"安装 macOS"(或"安装 OS X"),然后点按"继续",并按照屏幕上的说明进行操作。

进一步了解

可引导安装器不会从互联网下载 macOS,但却需要互联网连接才能获取特定于 Mac 机型的固件和其他信息。

要了解 createinstallmedia 命令以及可与它搭配使用的参数,请确保 macOS 安装器位于您的"应用程序"文件夹中,然后在"终端"中输入相应的路径:


/Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia 

/Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia 

/Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia 

/Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia 

/Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia 

发布日期: 2021 年 05 月 13 日

https://support.apple.com/zh-cn/HT201372

Mac 中有些软件是通过 pkg 包进行安装的,其中有很多是系统包。如果我们只通过删除 Applications 目录下的图标是不能完全删除的。

PKG 包安装原理

pkg 包的安装原理非常简单,它解压后就会把文件分门别类解压到指定的位置。

这样安装虽然简单,但是卸载就非常困难了。我们需要把安装时候散落在各个位置的文件全部找到并删除掉。

PKG 分析

在终端中运行 pkgutil --pkgs 命令就可以看到已经安装过的包名

com.betafish.adblock-mac
org.nodejs.node.pkg
com.diumoo.diumoo
in.sinew.Enpass-Desktop
com.audioguidia.radioFMOSX
com.eusoft.freeeudic
com.hewbo.chmreader
com.netease.163music
com.wutian.weibo
com.teamviewer.teamviewer14AuthPlugin
com.microsoft.Excel
com.atpill.atpill
com.mitledas.ChmPages

com.apple 开头的包多数是系统包,请不要删除

运行 pkgutil --files com.microsoft.Excel 就可以看到分布在各个地方的文件

usr/local/include/node/v8-profiler.h
usr/local/include/node/v8-testing.h
usr/local/include/node/v8-util.h
usr/local/include/node/v8-value-serializer-version.h
usr/local/include/node/v8-version-string.h
usr/local/include/node/v8-version.h
...

PKG 包卸载

如果依据上面的分析,一个目录一个目录删除简直太痛苦了。而系统自带的包管理工具 pkgutil 比起其他系统的包管理来说又非常弱,连最基本的 uninstall 的功能都没有提供。那么我们如何快速删除已经安装过的 pkg 包呢?

uninstall-pkg.png

借助 UninstallPKG 不仅可以轻松查看安装包所有文件的位置,还能卸载那些已经失效的安装包。比起使用终端操作,更加直观方便。

下载地址

https://xclient.info/s/uninstall-pkg.html

Mac 自带 php-fpm,在终端执行 php-fpm,会报如下错误:

ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
ERROR: FPM initialization failed

错误信息显示,不能打开配置文件,cd /private/etc,发现没有 php-fpm.conf 文件,但是有 php-fpm.conf.default 文件。这个文件是默认配置,我们可以复制一份,改名为 php-fpm.conf,然后再根据需要改动配置。

sudo cp /etc/php-fpm.d/www.conf.default /etc/php-fpm.d/www.conf
sudo cp /etc/php-fpm.conf.default /etc/php-fpm.conf
sudo cp /etc/php.ini.default /etc/php.ini

执行 php-fpm,再次报错:

ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
ERROR: failed to post process the configuration
ERROR: FPM initialization failed

错误信息显示,不能打开错误日志文件。cd /usr/var/log 发现根本没有这个目录,甚至连 var 目录都没有,加上为了避免权限问题,干脆配置到 /usr/local/var/log 目录。首先手动建立这些目录

mkdir /usr/local/var/log
mkdir /usr/local/var/run

然后修改 php-fpm.conf 以下内容:

error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid

执行 php-fpm,再次报错:

NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root

于是 sudo php-fpm,再次报错:

ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (48)
ERROR: FPM initialization failed

sudo killall php-fpm

然后通过运行 php-fpm 命令即可正常启动 php-fpm

最后为了方便启动管理,我们给 php-fpm 启动、关闭、重启建个别名,方便以后操作

vim ~/.bash_profile

alias php-start="sudo php-fpm"
alias php-stop="kill -INT `cat /usr/local/var/run/php-fpm.pid`"
alias php-restart="kill -USR2 `cat /usr/local/var/run/php-fpm.pid`"