Mac下Homebrew的安装与使用

MacHomebrew的安装与使用

 一蓑烟羽 关注

2017.10.19 11:59* 字数 515 阅读 7684评论 0喜欢 3

Homebrew简介,安装与使用

简介

Homebrew 官方网站

Homebrew是一个包管理器,用于安装Apple没有预装但你需要的UNIX工具。(比如著名的wget)。

Homebrew会将软件包安装到独立目录(/usr/local/Cellar),并将其文件软链接至/usr/local。

Homebrew不会将文件安装到它本身目录之外,所以您可将Homebrew安装到任意位置。

Homebrew使macOS更完整。使用gem来安装gems、用brew来安装那些依赖包。

wget是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议下载,并可以使用HTTP代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。

安装

  • 安装XCode或者Command Line Tools for Xcode。Xcode可以从AppStore里下载安装,Command Line Tools for Xcode需要在终端中输入以下代码运行安装:
    xcode-select --install
  • 安装Homebrew。将以下命令粘贴至终端
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  • 脚本会在执行前暂停,并说明将它将做什么。

安装完成以后,需要运行brew doctor命令检测下是否有什么冲突的地方(如没有卸载MacPorts等等)

Homebrew安装成功后,会自动创建目录/usr/local/Cellar来存放Homebrew安装的程序。

  • 移除Homebrew。将以下命令粘贴至终端/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

基本使用

// 搜索包

brew search mysql

// 安装包

brew install mysql

// 查看包信息,比如目前的版本,依赖,安装后注意事项等

brew info mysql

// 卸载包

brew uninstall wget

// 显示已安装的包

brew list

// 查看brew的帮助

brew –help

// 更新, 这会更新 Homebrew 自己

brew update

// 检查过时(是否有新版本),这会列出所有安装的包里,哪些可以升级

brew outdated

brew outdated mysql

// 升级所有可以升级的软件们

brew upgrade

brew upgrade mysql

// 清理不需要的版本极其安装包缓存

brew cleanup

brew cleanup mysql

brew unlink node

使用 unlink,只会删除符号链接,但并不会删除程序本身, /usr/local/Cellar 目录中的程序文件还依然存在。这个功能在某些场景中非常有用,比如你需要某个程序包暂时失效,用于调试你正在进行的开发。

当 unlink 调试结束后,再运行 link 命令,就可以把相应的程序包恢复回来:

brew link node

包管理的好处是不是体现出来了。 你还可以用 brew info 命令查看当前安装的 node 版本:

brew info

输出:

node: stable 8.7.0 (bottled), HEAD

Platform built on V8 to build network applications

https://nodejs.org/

/usr/local/Cellar/node/8.7.0 (3,830 files, 45.5MB) *

  Poured from bottle on 2017-10-18 at 00:29:19

From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/node.rb

扩展:Homebrew Cask

你已经感受到了使用Homebrew安装命令行程序的便利。那么接下来,我们将通过Homebrew Cask优雅、简单、快速的安装和管理OS X图形界面程序,比如Google Chrome和Dropbox。

安装

brew install caskroom/cask/brew-cask

使用

基本用法与brew相同,只不过在brew后面加了一个cask单词。

// 安装软件

brew cask install google-chrome

// 卸载软件

brew cask uninstall google-chrome

其他

JDK 8 can be downloaded from Oracle's JDK Page.

// 安装Bazel

brew install bazel

// 查看Bazel版本

bazel version

// 提示需要安装java JDK

移除JAVA JDK

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.0_40.jdk

四、注意

在Mac OS X 10.11系统以后,/usr/local/等系统目录下的文件读写是需要系统root权限的,以往的Homebrew安装如果没有指定安装路径,会默认安装在这些需要系统root用户读写权限的目录下,导致有些指令需要添加sudo前缀来执行,比如升级Homebrew需要:

$ sudo brew update

如果你不想每次都使用sudo指令,你有两种方法可以选择:

  1. 对/usr/local 目录下的文件读写进行root用户授权
    $ sudo chown -R $USER /usr/local

  2. 示例:
    $ sudo chown -R gaojun /usr/local
  3. (推荐)安装Homebrew时对安装路径进行指定,直接安装在不需要系统root用户授权就可以自由读写的目录下
    <install path> -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Warning: /usr/local/bin is not in your PATH.

==> Installation successful!

安装完成后提升告警,进行如下的操作:

终端输入命令 export PATH=/usr/local/bin:$PATH

即可解决此问题

官网:https://brew.sh/index_zh-cn.html

server {

listen 80;

server_name localhost;

location / {

  proxy_pass http://127.0.0.1:8080;

}

}

/usr/local/Cellar/nginx/1.15.7/.bottle/etc/nginx/nginx.conf

/usr/local/etc/nginx/nginx.conf  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非常适合做后台项目的go脚手架

分享一个非常适合做后台脚手架的go项目&#xff0c;该项目使用gin作为mvc框架搭建。她就是Gin-vue-admin。该一个基于 vue 和 gin 开发的全栈前后端分离的开发基础平台&#xff0c;集成jwt鉴权&#xff0c;动态路由&#xff0c;动态菜单&#xff0c;casbin鉴权&#xff0c;表单…

优化 Django 数据库查询

优化 Django 数据库查询 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 优化 Django 数据库查询**理解 N+1 查询问题****`select_related`:外键的急加载**示例何时使用 `select_re…

大数据(5)Spark部署核弹级避坑指南:从高并发集群调优到源码级安全加固(附万亿级日志分析实战+智能运维巡检系统)

目录 背景一、Spark核心架构拆解1. 分布式计算五层模型 二、五步军工级部署阶段1&#xff1a;环境核弹级校验阶段2&#xff1a;集群拓扑构建阶段3&#xff1a;黄金配置模板阶段4&#xff1a;高可用启停阶段5&#xff1a;安全加固方案 三、万亿级日志分析实战1. 案例背景&#x…

【学Rust写CAD】36 颜色插值函数(alpha256.rs补充方法)

源码 pub fn alpha_lerp(self,src: Argb, dst: Argb, clip: u32) -> Argb {self.alpha_mul_256(clip).lerp(src, dst)}这个函数 alpha_lerp 是一个颜色插值&#xff08;线性插值&#xff0c;lerp&#xff09;函数&#xff0c;它结合了透明度混合&#xff08;alpha_mul_256&…

解决Ubuntu系统鼠标不流畅的问题

电脑是联想的台式组装机&#xff0c;安装ubuntu系统&#xff08;不管是16、18、20、22&#xff09;后&#xff0c;鼠标都不流畅。最近几天想解决这个问题&#xff0c;于是怀疑到了显卡驱动上。怀疑之前一直用的是集成显卡&#xff0c;而不是独立显卡&#xff0c;毕竟2060的显卡…

oracle asm 相关命令和查询视图

有关asm磁盘的命令 添加磁盘 alter diskgroup data1 add disk /devices/diska*;---runs with a rebalance power of 5 , and dose not return until the rebalance operation is completealter diskgroup data1 add disk /devices/diskd* rebalance power 5 wait;查询 select …

C++基于rapidjson的Json与结构体互相转换

简介 使用rapidjson库进行封装&#xff0c;实现了使用C对结构体数据和json字符串进行互相转换的功能。最短只需要使用两行代码即可无痛完成结构体数据转换为Json字符串。 支持std::string、数组、POD数据&#xff08;int,float,double等&#xff09;、std::vector、嵌套结构体…

Python爬虫HTTP代理使用教程:突破反爬的实战指南

目录 一、代理原理&#xff1a;给爬虫穿上"隐身衣" 二、代理类型选择指南 三、代码实战&#xff1a;三行代码实现代理设置 四、代理池管理&#xff1a;打造智能IP仓库 代理验证机制 动态切换策略 自动重试装饰器 五、反反爬对抗技巧 请求头伪装 访问频率控…

STM32江科大----IIC

声明&#xff1a;本人跟随b站江科大学习&#xff0c;本文章是观看完视频后的一些个人总结和经验分享&#xff0c;也同时为了方便日后的复习&#xff0c;如果有错误请各位大佬指出&#xff0c;如果对你有帮助可以点个赞小小鼓励一下&#xff0c;本文章建议配合原视频使用❤️ 如…

使用 React 和 Konva 实现一个在线画板组件

文章目录 一、前言二、Konva.js 介绍三、创建 React 画板项目3.1 安装依赖3.2 创建 CanvasBoard 组件 四、增加画布控制功能4.1 清空画布4.2 撤销 & 重做功能 五、增加颜色和画笔大小选择5.1 选择颜色5.2 选择画笔大小 六、最终效果七、总结 一、前言 在线画板是许多应用&…

服务器配置虚拟IP

服务器配置虚拟IP的核心步骤取决于具体场景&#xff0c;主要包括本地单机多IP配置和高可用集群下的虚拟IP管理两种模式。‌ 一、本地虚拟IP配置&#xff08;单服务器多IP&#xff09; ‌基于Linux系统‌&#xff1a; ‌确认网络接口‌&#xff1a;使用 ip addr 或 ifconfig 查…

C++ —— 文件操作(流式操作)

C —— 文件操作&#xff08;流式操作&#xff09; ofstream文件创建文件写入 ofstream 文件打开模式std::ios::out 写入模式std::ios::app 追加模式std::ios::trunc 截断std::ios::binary 二进制std::ios::ate at the end模式 ifstreamstd::ios::in 读取模式&#xff08;默认&…

【Cursor】打开Vscode设置

在这里打开设置界面 打开设置json

智能指针和STL库学习思维导图和练习

思维导图&#xff1a; #include <iostream> #include <vector> #include <string> using namespace std;// 用户结构体 struct User {string username;string password; };vector<User> users; // 存储所有注册用户// 使用迭代器查找用户名是否存在 ve…

前端工具方法整理

文章目录 1.在数组中找到匹配项&#xff0c;然后创建新对象2.对象转JSON字符串3.JSON字符串转JSON对象4.有个响应式对象&#xff0c;然后想清空所有属性5.判断参数不为空6.格式化字符串7.解析数组内容用逗号拼接8.刷新整个页面 1.在数组中找到匹配项&#xff0c;然后创建新对象…

状态空间建模与极点配置 —— 理论、案例与交互式 GUI 实现

目录 状态空间建模与极点配置 —— 理论、案例与交互式 GUI 实现一、引言二、状态空间建模的基本理论2.1 状态空间模型的优势2.2 状态空间模型的物理意义三、极点配置的理论与方法3.1 闭环系统的状态反馈3.2 极点配置条件与方法3.3 设计流程四、状态空间建模与极点配置的优缺点…

仿modou库one thread one loop式并发服务器

源码&#xff1a;田某super/moduo 目录 SERVER模块&#xff1a; Buffer模块&#xff1a; Socket模块&#xff1a; Channel模块&#xff1a; Connection模块&#xff1a; Acceptor模块&#xff1a; TimerQueue模块&#xff1a; Poller模块&#xff1a; EventLoop模块&a…

Oracle中的UNION原理

Oracle中的UNION操作用于合并多个SELECT语句的结果集&#xff0c;并自动去除重复行。其核心原理可分为以下几个步骤&#xff1a; 1. 执行各个子查询 每个SELECT语句独立执行&#xff0c;生成各自的结果集。 如果子查询包含过滤条件&#xff08;如WHERE&#xff09;、排序&…

面试算法高频04-分治与回溯

分治与回溯 分治和回溯算法&#xff0c;包括其概念、特性、代码模板&#xff0c;并结合具体题目进行讲解&#xff0c;旨在帮助学员理解和掌握这两种算法的应用。 分治与回溯的概念 分治&#xff08;Divide & Conquer&#xff09;&#xff1a;本质上基于递归&#xff0c;先…

线性方程组的解法

文章目录 线性方程组的解法认识一些基本的矩阵函数MATLAB 实现机电工程学院教学函数构造1.高斯消元法2.列主元消去法3. L U LU LU分解法 线性方程组的解法 看到以下线性方程组的一般形式&#xff1a;设有以下的 n n n阶线性方程组&#xff1a; A x b \mathbf{Ax}\mathbf{b} A…