HomeBrew和HomeBrew Cask的安装和使用

HomeBrew和HomeBrew Cask的安装和使用

一. HomeBrew

虽然macOS上的命令行界面具有很多在Linux和其他Unix系统中可以找到的功能,但它没有附带一个好的包管理器。 包管理器是一组软件工具,可用于自动执行软件安装,配置和升级。 他们将安装的软件保存在一个中心位置,并且可以使用常用的格式维护系统上的所有软件包。 Homebrew是一个免费的开源软件包管理系统,可以简化macOS上的软件安装

1. 安装HomeBrew

1.1 安装前的要求

  1. 操作系统为Mac OS X 10.5 Leopard或更高版本
  2. 已安装版本管理工具Git(Mac OS X 10.7 Lion已经预安装)
  3. 已安装Xcode开发工具
  4. 已安装Java Developer Update

1.2 使用终端安装

打开终端,输入下列语句,自动安装HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.3 验证HomeBrew是否完成

在终端中输入brew

TorMoordeMacBook-Pro:~ zfc$ brew
-bash: brew: command not found

//注意,这里输入brew没有响应,因为我们没有把他加入系统路径中
//所以输入完整路径,如下列所示

TorMoordeMacBook-Pro:~ zfc$ /usr/local/bin/brew
Example usage:
  brew search [TEXT|/REGEX/]
  brew info [FORMULA...]
  brew install FORMULA...
  brew update
  brew upgrade [FORMULA...]
  brew uninstall FORMULA...
  brew list [FORMULA...]

Troubleshooting:
  brew config
  brew doctor
  brew install --verbose --debug FORMULA

Contributing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]

Further help:
  brew commands
  brew help [COMMAND]
  man brew
  https://docs.brew.sh
TorMoordeMacBook-Pro:~ zfc$ 

1.4 输入brew不响应

1.4.1 使用完整路径

只输入brew不行,要输入brew的完整路径
如:上述例子中我们输入了/usr/local/bin/brew 就成功了

1.4.2添加环境变量

虽然输入完整的路径可以使用brew,但是对于我们来说还是太过于繁琐,所以我们把他加入环境变量,这样我们就可以直接使用brew了

  1. 打开访达,按 shift + commend + G,输入~/.bash_profile
  2. 打开 .bash_profile
  3. 输入
PATH=/usr/local/bin:$PATH
  1. 重新打开终端,输入brew,看是否成功
    安装完成后,Homwbrew 会将本地 /usr/local 初始化为 git 的工作树,并将目录所有者变更为当前所操作的用户,将来 brew 的相关操作不需要 sudo 。
1.4.3参考文档

https://blog.csdn.net/weichuang_1/article/details/47679465

2. Homebrew语句

安装好HomeBrew后,我们就可以开始使用HomeBrew了
但是在开始之前,我们有必要清楚brew的常用语句

which brew 展示brew的位置

brew search 列出brew支持的软件
brew search <package_name> 搜索

brew install <package_name> 安装软件
brew uninstall <package_name> 卸载软件

brew update 从服务器上拉取,并更新本地 brew 的包目录
brew upgrade <package_name> 更新软件
brew outdated 查看你的软件中哪些有新版本可用
brew cleanup 清理老版本。使用 -n 参数,不会真正执行,只是打印出真正运行时会做什么。

brew list 查看你安装过的包列表
brew list --versions 查看你安装过的包列表(包括版本号)

brew link <package_name> 将软件的当前最新版本软链到/usr/local目录下
brew unlink <package_name> 将软件在/usr/local目录下的软链接删除

brew info 显示软件的信息
brew deps 显示包依赖

3.HomeBrew下载软件的目录

虽然使用HomeBrew安装软件很方便,但是有时候我们想直接使用电脑本地的软件包,所以我们还是有必要知道怎么找到软件包的位置

3.1 安装包

Homebrew下载后的软件包放在/Library/Caches/Homebrew中,时间长了以后,软件包会特别多,所以我们应该定期清理

3.2 安装目录

HomeBrew下载的软件的安装目录为

/usr/local/Cellar/<package_name>/<version>/

一般的软件可能会包含可执行文件、供其它库使用的头文件、运行库、文档等文件或目录,为了方便升级管理,,brew 会把这些文件或目录分别软链接到

/usr/local/bin/
/usr/local/include/
/usr/local/lib/
/usr/local/share/ 
等目录下

3.3 更新

HomeBrew更新后的版本不会自动删除,即:更新后的软件会有多个版本
所以我们可以通过
brew swith <package_name>
来选择软件的版本

同时,也可以通过
brew cleanup
来清楚多余的版本

3.3.1 参考文档

http://phenmod.com/

二. Homebrew Cask

HomeBrew是通过源码的方式来安装软件,但是有时候我们安装的软件是GUI程序应用宝(.dmg/.pkg),这个时候我们就不能使用HomeBrew了

所以有了HomeBrew Cask的出现

brew cask 是在brew 的基础上一个增强的工具,用来安装Mac上的Gui程序应用包(.dmg/.pkg), 比如qq、chrome等。它先下载解压到统一的目录中(/opt/homebrew-cask/Caskroom),省掉了自己去下载、解压、拖拽(安装)等步骤,同样,卸载相当容易与干净。然后再软链到~/Applications/目录下, 非常方便,而且还包含很多在 AppStore 里没有的常用软件。

brew cask的官网是:http://caskroom.io

github地址是:https://github.com/caskroom/homebrew-cask

1. 安装HomeBrew Cask

因为我们这个时候已经安装了HomeBrew,所以我们直接使用HomeBrew来进行安装,打开终端,输入下列语句

brew install  caskroom/cask/brew-cask 

如果安装失败,显示Error: Cask ‘brew-cask’ is unavailable: ‘/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/brew-cask.rb’ does not exist. ,尝试输入

 brew install brew-cask-completion

2. 验证是否完成安装

在终端输入

brew cask

显示下列文字则成功了,

TorMoordeMacBook-Pro:~ zfc$ brew cask
Homebrew Cask provides a friendly CLI workflow for the administration
of macOS applications distributed as binaries.

Commands:

    audit      verifies installability of Casks
    cat        dump raw source of the given Cask to the standard output
    create     creates the given Cask and opens it in an editor
    doctor     checks for configuration issues
    edit       edits the given Cask
    fetch      downloads remote application files to local cache
    home       opens the homepage of the given Cask
    info       displays information about the given Cask
    install    installs the given Cask
    list       with no args, lists installed Casks; given installed Casks, lists staged files
    outdated   list the outdated installed Casks
    reinstall  reinstalls the given Cask
    style      checks Cask style using RuboCop
    uninstall  uninstalls the given Cask
    upgrade    upgrades all outdated casks
    zap        zaps all files associated with the given Cask

See also "man brew-cask"

若输入brew cask无响应

输入完整路径
因为我们没有把路径加入系统路径中

3. HomeBrew cask常用命令

HomeBrew cask常用命令和HomeBrew的区别不是很大,参考HomeBrew的就行了

注意:
HomeBrew cask没有提供更新软件的命令,所以我们更新软件得先卸载再安装
命令如下
brew cask uninstall APP && brew cask install APP

三. 参考文档:

Mac下Homebrew和HomeBrew cask的安装与使用
极客学院对HomeBrew的介绍
Mac下Homebrew的安装与使用
借助 Homebrew Cask,教你快速下载安装 Mac App 新姿势
Mac命令行效率提升利器篇

<think>好的,用户问的是如何区分PC和H5获取录音权限。首先,我需要明确用户的需求。他们可能是在开发一个需要录音功能的Web应用,想要了解在桌面浏览器(PC)和移动浏览器(H5)上获取麦克风权限的不同方法。需要从技术实现、API使用、用户交互、兼容性等方面进行分析。 首先,回忆一下Web Audio API的相关知识。在Web开发中,获取用户麦克风权限通常使用navigator.mediaDevices.getUserMedia方法。这个方法在PC和移动端的基本调用方式是一样的,但实际应用中可能会有差异。需要分步骤说明两者的不同点。 接下来,权限请求的触发方式。在PC端,大多数浏览器要求用户必须在用户交互(比如点击事件)中触发权限请求,否则会被阻止。而在移动端,尤其是H5页面,可能同样需要用户交互,但不同移动浏览器的行为可能不同。需要确认这一点,是否有例外情况。 然后,用户提示的差异。PC端浏览器通常会在地址栏显示权限请求的图标,而移动端可能会以弹窗或底部提示的方式出现。这里可能需要具体举例,比如Chrome在PC和手机上的不同表现。 安全上下文的要求。无论是PC还是移动端,使用getUserMedia都需要在HTTPS环境下,本地开发环境(localhost)除外。这一点是否一致?需要确认。 设备检测方面,移动端可能需要处理更多设备适配问题,比如前后麦克风的选择,而PC端可能通常只有一个麦克风。但这里可能需要更准确的描述,比如移动设备可能有多个麦克风,但通常由系统管理,而开发者可能不需要特别处理。 兼容性问题。需要列举不同浏览器在PC和移动端对录音权限的支持情况。比如Safari在iOS上的限制,或者某些安卓浏览器的不同行为。 接下来,代码示例部分。需要提供一个基本的请求麦克风权限的代码示例,并指出在PC和H5中的注意事项。比如在移动端可能需要处理自动播放策略,或者用户拒绝后的不同处理方式。 另外,权限持久化方面,PC端浏览器可能会记住用户的选择,而移动端可能每次都需要重新请求,或者有不同的会话管理方式。需要确认不同浏览器的具体行为。 最后,总结关键点,帮助用户区分两者的主要差异,比如触发方式、用户提示、兼容性处理等。确保回答结构清晰,步骤明确,用户能够逐步理解和应用。 需要验证一些不确定的点,比如移动端是否真的每次都需要用户交互触发,或者不同浏览器是否有不同的策略。例如,iOS上的Safari对getUserMedia的调用是否有严格的用户手势要求,而Chrome on Android是否允许在某些情况下自动触发。此外,权限请求的UI展示在不同平台上的具体表现,可能需要进一步查证。 另外,设备检测方面,是否需要使用mediaDevices.enumerateDevices来列出麦克风设备,这在移动端是否有必要,或者是否通常只有一个可用麦克风。这部分可能需要简化,避免复杂化问题。 最后,确保回答符合用户可见层的要求,结构清晰,逐步解决问题,并且内容真实可靠。避免技术错误,比如错误的API名称或不兼容的浏览器示例。</think>区分PC端和移动端H5获取录音权限的实现差异,主要涉及浏览器API调用方式、用户交互流程及兼容性处理。以下是关键点分析: --- ### **一、核心API调用** 无论PC或H5均使用Web API `navigator.mediaDevices.getUserMedia()`,但实现细节不同: ```javascript // 通用代码框架 async function requestMicrophone() { try { const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); // 成功获取音频流 } catch (error) { // 处理权限拒绝或错误 } } ``` --- ### **二、用户交互差异** | **场景** | **PC端** | **H5(移动端)** | |----------------|----------------------------------------|---------------------------------------| | **触发条件** | 需用户主动交互(如点击按钮) | 同样需用户手势触发,部分浏览器更严格 | | **权限弹窗** | 浏览器顶部地址栏提示 | 系统级弹窗或底部提示栏 | | **持久化策略** | 浏览器可记住用户选择 | 部分移动浏览器每次刷新需重新授权 | --- ### **三、兼容性注意事项** 1. **PC端重点问题** - 旧版Edge/Firefox 需处理 `getUserMedia` 前缀 - Safari 要求 HTTPS 环境 2. **H5移动端特殊处理** - **iOS Safari**:首次拒绝后需手动开启(设置 > Safari > 麦克风) - **微信浏览器**:需配置JS接口安全域名 - **安卓WebView**:需应用层声明录音权限 --- ### **四、关键代码适配技巧** 1. **检测设备类型** ```javascript const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); ``` 2. **错误处理优化** ```javascript catch (error) { if (error.name === 'NotAllowedError') { // 提示用户手动开启权限 if (isMobile) alert('请前往系统设置启用麦克风权限'); } } ``` 3. **自动播放策略(H5重点)** ```javascript // 移动端需在用户交互后立即播放音频,避免静音阻塞 audioElement.play().catch(() => { /* 处理自动播放失败 */ }); ``` --- ### **五、调试建议** 1. **PC端**:使用Chrome `chrome://settings/content/microphone` 管理权限 2. **H5移动端**: - Android Chrome:长按页面 > 站点设置 - iOS Safari:需完全关闭页面后重新进入 --- ### **总结** - **本质相同**:均依赖 `getUserMedia` API,但交互流程和系统限制不同 - **核心差异**:移动端涉及更多系统级权限管控和浏览器兼容问题 - **适配关键**:结合设备检测优化提示逻辑,优先在HTTPS环境部署
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值