很多人都在使用Linux Homebrew ,有三个技巧可以帮助你更好的使用它:
避免环境污染
首先要避免将 Homebrew 的 bin 目录添加到 $PATH ,而仅仅将你需要使用的几个可执行做软连接放到 ~/bin 下面(这个目录在 $PATH 中),以避免环境污染。
当你编译或者安装新软件时,你显然希望它依赖的是 /usr 目录下面的系统文件,而如果把 Homebrew 的 bin 目录长期置于 $PATH 中,那么编译时将会调用到 Homebrew 里面的 gcc / clang (这两个经常在 brew 中被自动安装,用于编译和安装 homebrew 中源码形式的包),即便你的 brew 中没有 gcc / clang,也会在分析依赖时调用到 pkg-config / python 等 brew 下的软件,从而返回基于 homebrew 的依赖,这显然不是你想要的。
所以把你需要的工具做个软连接放到 ~/bin 下面就可以既使用 homebrew 又避免环境污染,只是在调用 brew 安装新包时需要临时添加 homebrew 的 bin 目录到 $PATH 中,用完了又取消,我们用两个函数做这个事情:
function brew_disable() { export PATH=${PATH##*"/.linuxbrew/bin:"} export PATH=${PATH##*"/.linuxbrew/sbin:"} export MANPATH=${MANPATH##*"/.linuxbrew/share/man:"} export INFOPATH=${INFOPATH##*"/.linuxbrew/share/info:"} } function brew_enable() { BREW='/home/linuxbrew/.linuxbrew' brew_disable export PATH="$BREW/bin:$BREW/sbin:$PATH" export MANPATH="$BREW/share/man:$MANPATH" export INFOPATH="$BREW/share/info:$INFOPATH" export HOMEBREW_NO_AUTO_UPDATE=1 }
上面两个函数放到你的 bashrc 中,平时不需要启用 homebrew,需要安装时调用一下 brew_enable,安装完包了再用 brew_disable。
还有另外一个做法,直接写一个名叫 brew 的函数:
function brew() { PATH="/home/linuxbrew/.linuxbrew/bin:$PATH" /home/linuxbrew/.linuxbrew/bin/brew "$@" }
这样再敲入 brew 命令的时候,会临时设置路径并调用真正的 brew 可执行:
brew install fzf
有了上面的函数,你就不需要设置任何 brew 路径而直接安装软件了,如果你不想覆盖 brew 这个名字,可以把上面的函数改名为 brew2 之类的。
禁用自动更新
第二项优化,是禁用每次 brew 自动更新:
export HOMEBREW_NO_AUTO_UPDATE=1
这样可以避免每次 install 软件急着用时它给你 update 一半天,是十分影响心情的事情,有了这个宏以后完全可以定期手动 brew update 。
使用临时代理
继续在 bashrc 中加一行:
alias socks5="http_proxy=socks5://127.0.0.1:1080 https_proxy=socks5://127.0.0.1:1080 all_proxy=socks5://127.0.0.1:1080 "
注意,最后引号结束前有一个空格,那么当你希望让 brew 走代理时就可以:
socks5 brew install micro
这样不破坏环境变量,临时给 brew 设置了一个 localhost:1080 的 socks5 代理,用来安装新软件。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。
问题内容: 这个想法是使用更少的连接和更好的性能。连接是否随时终止? 对于另一个问题,是否打开新连接? 问题答案: 不,多路复用器不会过期。没有GetDatabase不会打开新连接。basics.md涵盖了所有内容 -特别是: 从GetDatabase返回的对象是便宜的直通对象,不需要存储。
我有一个使用jquery mobile的应用程序,它由几个html页面组成,每个页面中都有几个jquery页面元素。在桌面浏览器上,一切正常,但当我把它加载到我的android设备(运行2.3)上时,第一个页面看起来很好,但只要你点击一个链接(比如从index.html)- 那么,是否有正确的方法在不同的html页面之间移动呢?我没有得到任何浏览器错误,所以一切似乎都工作正常,但没有jqm的样式或
问题内容: 我正在尝试对表单中的某些字段使用get_or_create,但尝试这样做时却出现500错误。 其中一行如下所示: 对于以上代码,我得到的错误是: 问题答案: 从文档get_or_create中: 说明: 要评估相似性的字段必须在外部提及。其余字段必须包含在中。如果发生CREATE事件,则会考虑所有字段。 看起来你需要返回一个元组,而不是单个变量,请执行以下操作:
问题内容: 我刚刚在我的项目中发现了一些这样的sql查询构建: 这是否达到其目标,即减少内存使用量? 我对此表示怀疑,因为在构造函数中使用了“ +”(字符串concat运算符)。像下面的代码那样,将占用与使用String相同的内存量吗?我了解,使用时有所不同。 两条语句的内存使用量是否相等?请澄清。 提前致谢! 编辑: 顺便说一句, 这不是我的代码 。在一个旧项目中发现它。而且,查询的大小不如我的
本文向大家介绍Javascript中parseInt的正确使用方式,包括了Javascript中parseInt的正确使用方式的使用技巧和注意事项,需要的朋友参考一下 定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数。 语法 parseInt(string, radix) 当参数radix的值为 0,或没有设置该参数时,parseInt()会根据 string来判断数字的基数
如何贡献 报告 bug 运行 brew update 两次 运行并观察 brew docter 的检测结果 对照常见问题列表 在项目库创建一个新 issue。 更新 formula 检查 PR 列表,查看是否已有重复 PR 运行 brew bump-formula-pr --strict foo --url=... 并至少提供 --sha256=... 或 --tag=... 或 --revisi