Git Product home page Git Product logo

homebrew-bottle-mirror's Introduction

Homebrew Bottle Mirror

Deprecated: the project is not actively maintained, please check ustclug/ustcmirror-images#homebrew-bottles. Related to #6.

FOSSA Status

mirror tools for syncing homebrew bottle files.

Usage

General way

run the following command on your Mac:

brew tap gaoyifan/bottle-mirror
brew bottle-mirror mac
# or
brew bottle-mirror linux

docker

macOS

# homebrew core repository
docker run -itd \
  --name=homebrew-bottles \
  -v $YOUR_REPOSITORY_DIR:/srv/data \
  gaoyifan/homebrew-bottle-mirror
# homebrew tap repository
docker run -itd \
  --name=homebrew-bottles \
  -e HOMEBREW_TAP=$tap \
  -v $YOUR_REPOSITORY_DIR:/srv/data \
  gaoyifan/homebrew-bottle-mirror

linux

docker run -itd \
  --name=homebrew-bottles \
  -e RUN_LINUXBREW=true \
  -v $YOUR_REPOSITORY_DIR:/srv/data \
  gaoyifan/homebrew-bottle-mirror

Some useful environment variables:

Parameter Default value Description
DOCKER_UID 1000 program uid inside docker container
HOMEBREW_TAP           <null>                     sync a specific tap  repository          
HOMEBREW_BOTTLE_DOMAIN http://homebrew.bintray.com upstream repository
HOMEBREW_CACHE /srv/data where the repository store inside the docker container

available HOMEBREW_TAP value:

  • dupes
  • games
  • gui
  • python
  • php
  • science
  • versions
  • x11

more information for docker

Public mirror

https://mirrors.ustc.edu.cn/homebrew-bottles/

How to use?

add the following line to your ~/.bash_profile (if you use bash)

export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles

then load the new configration

$ source ~/.bash_profile

License

FOSSA Status

homebrew-bottle-mirror's People

Contributors

fossabot avatar gaoyifan avatar jk2k avatar taoky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

homebrew-bottle-mirror's Issues

Homebrew/brew 的 master 最新 commit 中 Checksum 对象不再包含 hash_type 方法

Homebrew/brew@5e91802#diff-b3c658d990062dd092574fada51d693426f29891928462e2a24379e81800671c

这导致了运行到 https://github.com/gaoyifan/homebrew-bottle-mirror/blob/master/cmd/brew-bottle-mirror.rb#L119 时执行出错:

Error: undefined method `hash_type' for #<Checksum:0x0000564df4695f58>
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:28:in `block (2 levels) in <top (required)>'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:21:in `each'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:21:in `block in <top (required)>'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:8:in `each'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:8:in `<top (required)>'
/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/root/.linuxbrew/Library/Homebrew/utils.rb:92:in `require?'
/root/.linuxbrew/Library/Homebrew/brew.rb:126:in `<main>'

似乎把这一行删掉就行了?

同步脚本失效

最近可能上游修改了fomula格式,现在同步脚本不work了,tuna服务器的日志摘录如下(每个包都会打印类似的错误):

Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/sdns.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/iproute2mac.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/grin.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/bitcoin.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/chapel.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/dfc.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/faiss.rb: something goes wrong.
Warning: /home/homebrew/.linuxbrew/homebrew/Library/Taps/homebrew/homebrew-core/Formula/xlearn.rb: something goes wrong.
sdns: undefined method `license' for Formulary::FormulaNamespaceba328642f7a35b88d61745bb38d1b354::Sdns:Class
["/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:36:in `rescue in load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:33:in `load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:54:in `load_formula_from_path'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:136:in `load_file'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:126:in `klass'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:122:in `get_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:331:in `factory'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formula.rb:1482:in `[]'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:101:in `block (2 levels) in <top (required)>'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:13:in `block in initialize'"]
root_url: https://homebrew.bintray.com/bottles, filename: libre-0.6.1.catalina.bottle.tar.gz
iproute2mac: uninitialized constant Language::Python::Shebang
["/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:36:in `rescue in load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:33:in `load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:54:in `load_formula_from_path'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:136:in `load_file'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:126:in `klass'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:122:in `get_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:331:in `factory'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formula.rb:1482:in `[]'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:101:in `block (2 levels) in <top (required)>'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:13:in `block in initialize'"]
grin: undefined method `license' for Formulary::FormulaNamespace3c461c5652df5df4fe4bedd4293baf8a::Grin:Class
["/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:36:in `rescue in load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:33:in `load_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:54:in `load_formula_from_path'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:136:in `load_file'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:126:in `klass'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:122:in `get_formula'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formulary.rb:331:in `factory'", "/home/homebrew/.linuxbrew/homebrew/Library/Homebrew/formula.rb:1482:in `[]'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:101:in `block (2 levels) in <top (required)>'", "/home/homebrew/.linuxbrew/homebrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:13:in `block in initialize'"]
bitcoin: undefined method `license' for #<Class:0x0000557e6782efe8>

不知道ustc站是否遇到。大佬有什么修改思路吗?

undefined method `version_scheme'

Error: undefined method `version_scheme' for #<Class:0x007fc9c60c9300>
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/pyenv.rb:6:in `<class:Pyenv>'
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/pyenv.rb:1:in `load_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:25:in `module_eval'
/root/.linuxbrew/Library/Homebrew/formulary.rb:25:in `load_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:42:in `load_formula_from_path'
/root/.linuxbrew/Library/Homebrew/formulary.rb:91:in `load_file'
/root/.linuxbrew/Library/Homebrew/formulary.rb:82:in `klass'
/root/.linuxbrew/Library/Homebrew/formulary.rb:78:in `get_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:215:in `factory'
/root/.linuxbrew/Library/Homebrew/formula.rb:1202:in `[]'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:4:in `block in <top (required)>'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:3:in `each'
/root/.linuxbrew/Library/Taps/gaoyifan/homebrew-bottle-mirror/cmd/brew-bottle-mirror.rb:3:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/root/.linuxbrew/Library/Homebrew/brew.rb:22:in `require?'
/root/.linuxbrew/Library/Homebrew/brew.rb:93:in `<main>'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.