by shigemk2

当面は技術的なことしか書かない

Formulaをダウングレードしてみたくなった

Homebrewの導入と使い方 | CAPH TECH

brew upgradeはあるくせに、brew downgrade的なものはhomebrewには存在しないようなので、
Formulaをダウングレードする方法を模索してみた。

結論から先に申し上げると、Formulaでどのバージョンのものをダウンロードするか決めているので、
Formulaを直接弄ればいいんじゃね?ということになった。

doxygenを例に取る。

まず

brew remove doxygen

次に、

brew edit doxygen

で、Formulaを直接編集する。

require 'formula'

class Doxygen < Formula
  homepage 'http://www.doxygen.org/'
  url 'http://ftp.stack.nl/pub/users/dimitri/doxygen-1.7.6.1.src.tar.gz' # ココを編集
  sha1 'a11e65a597019510051290d2af0e6f379838b9c5'

  head 'https://doxygen.svn.sourceforge.net/svnroot/doxygen/trunk'

  def install
    system "./configure", "--prefix", prefix
    system "make", "CC=#{ENV.cc}",
                   "CXX=#{ENV.cxx}",
                   "CFLAGS=#{ENV.cflags}",
                   "CXXFLAGS=#{ENV.cflags}"
    # MAN1DIR, relative to the given prefix
    system "make", "MAN1DIR=share/man/man1", "install"
  end
end

で、

brew install doxygen

なんか既に入っているみたいなので、

brew link doxygen

してみる。そしてバージョンを確認すると…

shigemk2:~ % brew info doxygen
doxygen: stable 1.7.6.1, HEAD
http://www.doxygen.org/
/usr/local/Cellar/doxygen/1.7.5.1 (7 files, 10.0M)
/usr/local/Cellar/doxygen/1.7.6.1 (7 files, 10.0M) *
/usr/local/Cellar/doxygen/1.8.0 (5 files, 9.7M)
https://github.com/mxcl/homebrew/commits/master/Library/Formula/doxygen.rbbrew 

とな。