博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
homebrew mac_借助Homebrew使从Mac到Linux的转换更加容易
阅读量:2522 次
发布时间:2019-05-11

本文共 8793 字,大约阅读时间需要 29 分钟。

homebrew mac

项目的开始是作为Mac的非官方Linux风格的软件包管理器。 它的用户很快就因其友好的界面和有用的提示而爱上了它,而且,在命运似乎有些奇怪的情况下,它已移植到Linux。

最初,有两个针对macOS和Linux的独立项目(Homebrew和Linuxbrew),但是现在Homebrew的核心管理两个操作系统。 因为我一直在的旅途中,所以我一直在研究我最喜欢的macOS开源应用程序在Linux上的性能,并且我很高兴发现Homebrew对Linux的支持确实发光。

为什么在Linux上使用Homebrew?

长期使用Linux的用户对Homebrew的一个合理的第一React是:“为什么不使用……”,下一个词是他们的首选Linux版本的软件包管理器。 基于Debian的系统已经具有apt ,而Fedora系统已经具有dnfyum ,并且Flatpak和AppImage之类的项目通过在两者上顺利运行来填补空白。 我在所有这些技术上花费了大量的时间,我不得不说每个技术都有其强大的功能。

那么,为什么我呢? 首先,它对我来说是难以置信的。 在过渡到过去的专有工具的更多开源替代方案时,我已经学到了很多东西,并且保持熟悉的东西(例如Homebrew)有助于我一次专注于学习一件事,而不会因操作系统之间的所有差异而感到不知所措。

另外,我还没有看到像Homebrew这样对用户友好的软件包管理器。 命令井井有条,默认的帮助输出显示:

$ brew      
-h
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

这种简短的输出可能会被误认为是一种限制,但是快速查看任何子命令后就会发现其丰富的功能。 上面的列表只有23行,但是install子命令具有供高级用户使用的79行信息:

$ brew      
--help
|
wc
-l
23
$ brew
install
--help
|
wc
-l
79

它具有忽略或安装依赖项,选择从源代码以及使用哪种编译器进行构建以及使用确切的上游Git提交与应用程序的正式“瓶装”版本的选项。 只需说一句,“自制”适用于专家和新手。

在Linux上开始使用Homebrew

如果您想尝试一下Homebrew,可以使用一个很棒的单行脚本在Mac或Linux上安装它:

$  / bin / bash -c " $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh) "

此命令立即执行Homebrew安装程序脚本。 如果您比较谨慎,可以curl文件,然后在查看后手动运行它:

$ curl      
-fsSL https:
// raw.githubusercontent.com
/ Homebrew
/ install
/ master
/ install.sh
--output homebrew_installer.sh
$
more homebrew_installer.sh
# review the script until you feel comfortable
$
bash homebrew_installer.sh

Linux指令包括点文件的配置,尤其是Debian系统上的~/.profile和Fedora上的~/.bash_profile

$      
test
-d
/ home
/ linuxbrew
/ .linuxbrew
&&
eval $
(
/ home
/ linuxbrew
/ .linuxbrew
/ bin
/ brew shellenv
)
$
test
-r ~
/ .bash_profile
&&
echo
"eval \$ ( $(brew --prefix) /bin/brew shellenv)"
>> ~
/ .bash_profile
$
echo
"eval \$ ( $(brew --prefix) /bin/brew shellenv)"
>> ~
/ .profile

为了确认安装,Homebrew团队提供了一个空的hello公式进行测试:

$ brew      
install hello
==
> Downloading https:
// linuxbrew.bintray.com
/ bottles
/ hello-
2.10 .x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==
> Pouring hello-
2.10 .x86_64_linux.bottle.tar.gz
🍺  
/ home
/ linuxbrew
/ .linuxbrew
/ Cellar
/ hello
/
2.10 :
52 files, 595.6KB

看来我的安装工作正常,没有任何问题,所以我将进一步探讨。

Brew用于命令行实用程序

您可以使用brew命令安装Homebrew中打包的任何命令行实用程序。 这些程序包定义称为“公式”,它们通过“瓶”进行编译和共享。 在Homebrew领域中,还有许多其他面向啤酒的术语,但是软件包管理器的主要收获是使软件易于访问。

什么样的软件? 考虑一下适合像我这样的书呆子使用的东西(而且,由于您正在阅读本文,所以也许也是)。 例如,显示目录结构或pyenv的方便的tree命令,我用来 。

您可以使用search命令查看所有可用的公式,并添加wc命令以显示可用的公式:

# -l counts the number of lines      
$ brew search
|
wc
-l
   
5087

迄今为止,有超过5,000个公式,这是数量惊人的软件。 需要注意的是,并不是每个公式都可以在Linux上运行。 brew search --help输出中有一部分,显示用于根据其运行的操作系统筛选软件的标志。 它将每个操作系统的存储库列表启动到浏览器。 我正在运行Fedora,因此可以尝试一下:

$  brew search --fedora tree

浏览器将加载https://apps.fedoraproject.org/packages/s/tree ,其中显示了可用于Fedora的选项。 还有其他浏览方式。 公式被整理并集中到核心存储库中,这些存储库由操作系统( Mac和中的Linux )划分。 它们也可以通过Homebrew API获得,并 。

即使有所有这些选项,我仍然可以通过其他用户的推荐找到大多数新工具。 如果您正在寻找灵感,这是我的一些最爱:

  • pyenvrbenvnodenv分别管理Python,Ruby和Node.js版本
  • imagemagick用于脚本化图像编辑
  • pandoc用于可脚本化的文档转换(我经常从.docx切换到.md或.html)
  • 为GitHub用户提供 hub
  • tldr有关如何使用命令行实用程序的示例

要浏览Homebrew,请看一下 ,它是滚动应用程序手册页的一种用户友好选择。 通过运行search确认它可用:

$ brew search tldr     
==
> Formulae
tldr ✔

成功! 选中标记使您知道它可用。 现在您可以安装它:

$ brew      
install tldr
==
> Downloading https:
// linuxbrew.bintray.com
/ bottles
/ tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz
######################################################################## 100.0%
==
> Pouring tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz
🍺  
/ home
/ linuxbrew
/ .linuxbrew
/ Cellar
/ tldr
/ 1.3.0_2:
6 files, 63.2KB

Homebrew提供了预构建的二进制文件,因此您不必从本地计算机上的源代码进行构建。 这样可以节省大量时间和CPU风扇噪音。 我对Homebrew赞赏的另一件事是,您可以在不确切了解其含义的情况下欣赏此功能。 如果您喜欢自己构建它,请在brew install使用-s--build-from-source标志,从源代码编译公式(即使存在瓶子)。

同样,引擎盖下的复杂性可能很有趣。 在tldr上运行info显示了依赖性管理的发生方式,公式的源代码在磁盘上的位置,甚至公共分析都可用:

$ brew info tldr     
tldr: stable 1.3.0
( bottled
) , HEAD
Simplified and community-driven
man pages
https:
// tldr.sh
/
Conflicts with:
  tealdeer
( because both
install
` tldr
` binaries
)
/ home
/ linuxbrew
/ .linuxbrew
/ Cellar
/ tldr
/ 1.3.0_2
(
6 files, 63.2KB
)
*
  Poured from bottle on
2020 -06-08 at
15 :
56 :
15
From: https:
// github.com
/ Homebrew
/ linuxbrew-core
/ blob
/ master
/ Formula
/ tldr.rb
==
> Dependencies
Build: pkg-config ✔
Required: libzip ✔, curl ✔
==
> Options
--HEAD
        Install HEAD version
==
> Analytics
install:
197
(
30 days
) ,
647
(
90 days
) ,
1 ,
546
(
365 days
)
install-on-request:
197
(
30 days
) ,
646
(
90 days
) ,
1 ,
546
(
365 days
)
build-error:
0
(
30 days
)

从Mac到Linux的一个限制

在macOS上,Homebrew cask子命令为用户提供了使用相同的强大命令行实用程序安装和管理整个应用程序的方法。 不幸的是, cask尚未在任何Linux发行版上运行。 我在尝试安装开源工具时发现了这一点:

$ brew cask      
install tusk
Error: Installing casks is supported only on macOS

我询问了并从其他用户那里得到了一些快速反馈。 简而言之,选项是:

  • 分叉项目,构建功能,并向其他人表明这是值得的
  • 为应用程序编写公式并从源代码构建
  • 为应用程序创建第三方存储库

最后一个对我来说最有趣。 Homebrew通过 (另一个受啤酒影响的术语)来管理第三方存储库。 当您更加熟悉系统并希望添加到生态系统中时,水龙头就值得探索。

备份Homebrew安装

我最喜欢的Homebrew功能之一是如何像任何其他一样备份安装。 对于此过程,Homebrew提供了bundle子命令,该子命令包含可生成Brewfile的dump子命令。 该文件是当前所有已安装工具的可重用列表。 要从安装中生成Brewfile,请进入要使用的任何文件夹并运行:

$      
cd ~
/ Development
/ dotfiles
# This is my dotfile folder
$ brew bundle dump
$
ls Brewfile
Brewfile

当我更换机器并想在上面设置相同的应用程序时,我进入带有Br​​ewfile的文件夹,并使用以下命令重新安装它们:

$      
ls Brewfile
Brewfile
$ brew bundle

它将在我的新计算机上安装所有列出的公式。

跨Mac和Linux的Brewfile管理

Brewfile是备份现有安装的好方法,但是如果Mac上的某些软件不能在Linux上运行,反之亦然呢? 我发现,无论是Mac还是Linux,Homebrew都会优雅地忽略在给定操作系统上不起作用的行。 当遇到不兼容的请求(例如要求brew在Linux上安装木桶)时,它会跳过它们并继续进行:

$ brew bundle      
--file =Brewfile.example
Skipping cask licecap
( on Linux
)
Skipping cask macdown
( on Linux
)
Installing fish
Homebrew Bundle
complete
!
1 Brewfile dependency now installed.

为了使我的配置尽可能简单,我在两个操作系统上都使用了相同的Brewfile,并且没有遇到问题,因为它每次运行时都会安装特定于操作系统的版本。

自酿包装管理

Homebrew一直是我担任命令行实用程序的经理,而对它的熟悉使我的Linux使用体验更加愉悦。 Homebrew使我保持井井有条,并保持最新状态,我继续欣赏它在易用性和功能深度之间的平衡。 我更喜欢将软件包管理的详细信息保留在用户需要了解的最少信息量中,大多数人将从中受益。 如果您已经对Linux软件包管理器感到满意,那么Homebrew可能会变得很简单,但是更深入地了解就会发现它的高级选项远远超出了本文的范围。

Linux用户有很多软件包管理选项。 如果您来自macOS,那么Homebrew会像家一样。

翻译自:

homebrew mac

转载地址:http://kpdzd.baihongyu.com/

你可能感兴趣的文章
HTTP协议
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
Laravel 的生命周期
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
最短路径(SP)问题相关算法与模板
查看>>
Python——交互式图形编程
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
从远程库克隆库
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
C#——winform
查看>>