IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> HomeBrew上发布自己的脚本 -> 正文阅读

[开发工具]HomeBrew上发布自己的脚本

欢迎使用Markdown编辑器

相关概念

  • Keg(酒桶):安装好的脚本、软件等;
  • Cellar(酒窖):所有用 Homebrew 安装在本地的脚本、软件组成的集合;
  • Formula(配方):定义如何下载、编译和安装脚本或软件的 Ruby 脚本;
  • Tap:一个包含若干 Formula 的 GitHub 专案。

创建自己的Formula仓库

在git上创建自己的仓库,创建仓库的命名方式必须是以 homebrew- 的规则命名,否则在后续安装脚本的过程中会遇到些不可描述的坑。我创建的仓库如下:https://github.com/Linzehua2015/homebrew-hello.git
接下来我们通过 brew tap 指令将刚创建的仓库拉到本地(将店面开在homebrew旁边)。

// 在执行这个命令的时候,brew会自动去更新自己的formula仓库,会耗时几分钟。。。
brew tap Linzehua2015/hello https://github.com/Linzehua2015/homebrew-hello.git

在这里插入图片描述
在这里插入图片描述
我们可以看到本地有个隐藏的.git文件,所以实际上brew tap也是基于git来完成拉取仓库的操作。现在“店面”开好了,但是仓库下还没有布置“药方”,接下来我们原创个“药方”。

编写自己的配方

编写配方之前,我们需要先制作一个简单可执行的文件(脚本),供配方软连接到这个脚本。
我们编写一个简单的.sh脚本,输出你输入的内容。

#!/bin/bash
echo 您刚才输入的内容是: $1

然后执行指令,将其转为可执行文件。

mv hello.sh hello
chmod +x hello

将可执行文件打包成 tar.gz 的格式。

// tar zcvf FileName.tar.gz DirName
tar zcvf hello_0.0.1.tar.gz hello

将这个可执行文件上传到git。

上传到git,供配方软连接到这个脚本文件。
https://github.com/Linzehua2015/homebrew-hello/raw/master/hello_0.0.1.tar.gz

创建

使用 tap create 创建药方。

brew create https://github.com/Linzehua2015/homebrew-hello/raw/master/hello_0.0.1.tar.gz

注意,这里因为我没有更改brew的镜像源,所以创建成功后文件会出现在/Taps/homebrew/homebrew-core/Formula/hello.rb我们可以手动将这个 hello.rb 文件剪切到自己的Formula文件夹下/Taps/linzehua2015/homebrew-hello/Formula/hello.rb。
在这里插入图片描述
hello.rb 文件内容如下:

# Documentation: https://docs.brew.sh/Formula-Cookbook
#                https://www.rubydoc.info/github/Homebrew/brew/master/Formula
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
class Hello < Formula
  desc ""
  homepage ""
  url "https://github.com/Linzehua2015/homebrew-hello/raw/master/hello_0.0.1.tar.gz"
  sha256 "535d9625bf0ca15fac1c6fb975b26eaa347f09b277933cca01e60f637030fc46"
  # depends_on "cmake" => :build

  def install
    # ENV.deparallelize  # if your formula fails when building in parallel
    # Remove unrecognized options if warned by configure
    system "./configure", "--disable-debug",
                          "--disable-dependency-tracking",
                          "--disable-silent-rules",
                          "--prefix=#{prefix}"
    # system "cmake", ".", *std_cmake_args
    system "make", "install" # if this fails, try separate make/make install steps
  end

  test do
    # `test do` will create, run in and delete a temporary directory.
    #
    # This test will fail and we won't accept that! For Homebrew/homebrew-core
    # this will need to be a test that verifies the functionality of the
    # software. Run the test with `brew test hello`. Options passed
    # to `brew install` such as `--HEAD` also need to be provided to `brew test`.
    #
    # The installed folder is not in the path, so use the entire path to any
    # executables being tested: `system "#{bin}/program", "do", "something"`.
    system "false"
  end
end

需要注意的信息有几个 desc、homepage、url、sha256 ,其中sha256是对url下载的文件的校验,可以通过 openssl sha256 获取本地文件的校验码。

我们需要对安装方式做一下调整
调整如下:

def install
    bin.install "hello"
end

做完这些操作后,保存,提交到git上。

安装hello脚本

brew install Linzehua2015/hello/hello

在这里插入图片描述
可以看出我们的脚本装到了/usr/local/Cellar这个路径下。

open /usr/local/Cellar

在这里插入图片描述
Cellar存放着被成功下载并安装在本地的脚本,接下来你就可以使用指令 hello 来执行脚本啦!!

在这里插入图片描述

如何在其他人的设备安装自己的脚本

// 在执行这个命令的时候,brew会自动去更新自己的formula仓库,会耗时几分钟。。。
brew tap Linzehua2015/hello https://github.com/Linzehua2015/homebrew-hello.git
// 下载、安装 hello 脚本
brew install Linzehua2015/hello/hello
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 11:03:42  更:2021-09-10 11:05:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:28:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码