ffmpegをCentOS6.3でビルドした時のメモを残しておきます。
なお、指定したオプションは再配布可能な範囲での指定なので、自分でビルドする場合はもっとフルにオプション指定した方が良いと思います。例えば、--enable-nonfree
とか--enable-libfdk-aac
とか。
※この記事は後のビルドのためのベースとなるもので、最終的にはsharedリンクを完全に無くし、指定できるオプションは可能な限り付けることを目標としています。
対象バージョンと対象環境
- ffmpeg-2.0.1
- CentOS6.3
物理ホスト(CPU:Core2Quad 9550)上にKVMでCentOS6.3をMinimalでインストール。
CPUをきちんと認識(-cpu penryn
)させ拡張命令が使えるようにした。(参考)
model name : Intel Core 2 Duo P9xxx (Penryn Class Core 2) flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc unfair_spinlock pni ssse3 cx16 sse4_1 x2apic hypervisor lahf_lm
SSE4.2はCPUが古いので対応していないです。残念。
なお、ビルドオプションにCPU最適化を指定していませんが、これは後ほど、その2とかその3とかの時に対応します。
Win版の配布をしているあべちんさんの記事を参考にしました。
http://blog.k-tai-douga.com/article/57175936.html
ビルド戦略
- 基本的にCentOSのyumに入っているものを使う。
- 野良rpmは使わない。ffmpegで必要なlibは別途ビルドする。
- 必要なLibは
/usr/local/ffmpeg-lib
にインストールすることにする。 - 配布用のものではないので、そのあたりのライセンスを気にしないようにする。
まず最初に
Minimal環境だとコンパイラ含めて何もインストールされていないので、必要なものをyumで入れる。
$ yum update -y $ reboot $ uname -r 2.6.32-358.14.1.el6.x86_64
yum install -y glibc-devel glibc-headers glibc-static yum install -y wget yum install -y xz yum install -y gcc gcc-c++ make automake libtool yum install -y fontconfig fontconfig-devel yum install -y libxml2-devel yum install -y java-1.6.0-openjdk-devel.x86_64 yum install -y ncurses-devel ncurses-static ncurses-term yum install -y libpng libpng-devel libpng-static yum install -y libtiff libtiff-devel libtiff-static yum install -y lcms lcms-devel lcms-libs yum install -y git yum install -y openssl-devel yum install -y libsndfile libsndfile-devel
openjpeg
のビルドにはcmake
が必要だが、CentOS6.3のrpmではバージョンが低くて怒られてしまうため、別途新しいものをインストールしている。
ldconfigの設定を追加する。
$ vi /etc/ld.so.conf.d/ffmpeg.conf /usr/local/ffmpeg-libs/lib $ ldconfig # キャッシュの更新
環境変数の設定
都度設定しても良いが、面倒なのでbashrc
にでも書いておく。
export PATH=/usr/local/ffmpeg-libs/bin:$PATH export PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig
CMake
RPMと干渉しないように/usr/localではない場所にインストールする。
wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz tar zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2 ./bootstrap --parallel=4 --prefix=/usr/local/ffmpeg-libs make make install
環境変数の設定をする。
export CMAKE_ROOT=/usr/local/ffmpeg-libs/share/cmake-2.8
YASM
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar zxvf yasm-1.2.0.tar.gz cd yasm-1.2.0 ./configure --prefix=/usr/local/ffmpeg-libs make make install
NASM
lameで必要なため。
wget http://www.nasm.us/pub/nasm/releasebuilds/2.10.09/nasm-2.10.09.tar.xz tar Jxvf nasm-2.10.09.tar.xz cd nasm-2.10.09 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
fontconfig
CentOSにRPMが存在するが、.aファイルが存在しないのでstaticリンクができない。そのため、自分でビルドして入れる。が、今回はdynamic linkのままにするので今回はビルドしない。
fribidi
libassのビルドで必要なため。
wget http://fribidi.org/download/fribidi-0.19.5.tar.bz2 tar jxvf fribidi-0.19.5.tar.bz2 cd fribidi-0.19.5 ./configure --prefix=/usr/local/ffmpeg-libs make make install
libass
wget https://libass.googlecode.com/files/libass-0.10.1.tar.xz tar Jxvf libass-0.10.1.tar.xz cd libass-0.10.1 FRIBIDI_CFLAGS=-I/usr/local/ffmpeg-libs/include PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) https://code.google.com/p/libass/
libbluray
wget ftp://ftp.videolan.org/pub/videolan/libbluray/0.3.0/libbluray-0.3.0.tar.bz2 tar -jxvf libbluray-0.3.0.tar.bz2 cd libbluray-0.3.0 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.videolan.org/developers/libbluray.html
libcaca
動画のピクセルを文字に変換して出力するライブラリ。(ターミナルでアスキー表現を用いて画像っぽく見せるためのもの)
jdkを入れちゃったのでjavaが入っていると認識しちゃっているが、java用のライブラリを作るときにエラーになる(インクルードパスを設定してあげれば良いだけだが)
pythonは make install 時にエラーになるので無効化した。
wget http://caca.zoy.org/files/libcaca/libcaca-0.99.beta18.tar.gz tar zxvf libcaca-0.99.beta18.tar.gz cd libcaca-0.99.beta18 ./configure --prefix=/usr/local/ffmpeg-libs --disable-java --disable-python make make install
公式) http://caca.zoy.org/wiki/libcaca
libgsm
エラーがぼろぼろ出るが、基本的にrmに失敗しているだけなのでビルド自体は通っている。
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz tar zxvf gsm-1.0.13.tar.gz cd gsm-1.0-pl13
vi Makefile # 以下の部分を修正する INSTALL_ROOT = /usr/local/ffmpeg-libs GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
make make install
libmodplug
wget "https://downloads.sourceforge.net/project/modplug-xmms/libmodplug/0.8.8.4/libmodplug-0.8.8.4.tar.gz?r=http%3A%2F%2Fmodplug-xmms.sourceforge.net%2F&ts=1377681153&use_mirror=jaist" tar zxvf libmodplug-0.8.8.4.tar.gz cd libmodplug-0.8.8.4 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
lame
wget "https://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1377682004&use_mirror=jaist" tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 CPPFLAGS="-mfpmath=sse -msse -msse2 -msse3" ./configure --prefix=/usr/local/ffmpeg-libs --enable-nasm make make install
公式) http://lame.sourceforge.net/index.php
opencore-amr
wget "https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fopencore-amr%2F&ts=1377682715&use_mirror=jaist" tar zxvf opencore-amr-0.1.3.tar.gz cd opencore-amr-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make -j 3 make install
公式) http://opencore-amr.sourceforge.net/
openjpeg
wget https://openjpeg.googlecode.com/files/openjpeg-1.5.1.tar.gz tar zxvf openjpeg-1.5.1.tar.gz cd openjpeg-1.5.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
opus
wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz tar zxvf opus-1.0.3.tar.gz cd opus-1.0.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.opus-codec.org/
RTMPDump
アーカイブは2.3までのものしかなった。2.4はgitから取るしかない。
git clone git://git.ffmpeg.org/rtmpdump cd rtmpdump
vi Makefile vi librtmp/Makefile prefix=/usr/local/ffmpeg-libs
make make install
公式) http://rtmpdump.mplayerhq.hu/
libsoxr
wget "https://downloads.sourceforge.net/project/soxr/soxr-0.1.1-Source.tar.xz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsoxr%2Ffiles%2F&ts=1377753028&use_mirror=jaist" tar Jxvf soxr-0.1.1-Source.tar.xz cd soxr-0.1.1-Source mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs .. make make install
公式) http://sourceforge.net/p/soxr/wiki/Home/
SDL
2.0じゃなくて1.x系のものが必要。
wget http://www.libsdl.org/release/SDL-1.2.15.tar.gz tar zxvf SDL-1.2.15.tar.gz cd SDL-1.2.15 ./configure --prefix=/usr/local/ffmpeg-libs make make install
libogg
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz tar zxvf libogg-1.3.1.tar.gz cd libogg-1.3.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
libspeex
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar zxvf speex-1.2rc1.tar.gz cd speex-1.2rc1 ./configure --prefix=/usr/local/ffmpeg-libs --enable-sse make make install
公式) http://xiph.org/
libvorbis
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.xz tar Jxvf libvorbis-1.3.3.tar.xz cd libvorbis-1.3.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
libtheora
事前にlibogg, libvorbis, SDLを入れること。
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 tar jxvf libtheora-1.1.1.tar.bz2 cd libtheora-1.1.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
TwoLAME
事前にlibsndfile
が必要。今回はyumで入れている。
wget http://downloads.sourceforge.net/twolame/twolame-0.3.13.tar.gz tar zxvf twolame-0.3.13.tar.gz cd twolame-0.3.13 ./configure --prefix=/usr/local/ffmpeg-libs make make install
vid.stab
git clone https://github.com/georgmartius/vid.stab.git cd vid.stab cd src cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs . make make install
公式) http://public.hronopik.de/vid.stab/
opencore-amr
wget "https://downloads.sourceforge.net/project/opencore-amr/vo-aacenc/vo-aacenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-aacenc%2F&ts=1377763066&use_mirror=jaist" tar zxvf vo-aacenc-0.1.3.tar.gz cd vo-aacenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
vo-amrwbenc
wget "https://downloads.sourceforge.net/project/opencore-amr/vo-amrwbenc/vo-amrwbenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-amrwbenc%2F&ts=1377763362&use_mirror=jaist" tar zxvf vo-amrwbenc-0.1.3.tar.gz cd vo-amrwbenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
libvpx
git clone http://git.chromium.org/webm/libvpx.git cd libvpx git checkout v1.2.0 ./configure --prefix=/usr/local/ffmpeg-libs --target=x86_64-linux-gcc make make install
公式) http://www.webmproject.org/
libwavpack
wget http://www.wavpack.com/wavpack-4.60.1.tar.bz2 tar jxvf wavpack-4.60.1.tar.bz2 cd wavpack-4.60.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
x264
単純にmakeをしても良い。fprofiled でVIDSを指定すると、最適化してくれるらしい。とりあえずサッカー動画を使って最適化するようにしてみた。
git clone git://git.videolan.org/x264.git cd x264 git checkout stable ./configure --prefix=/usr/local/ffmpeg-libs wget http://media.xiph.org/video/derf/y4m/soccer_4cif.y4m make fprofiled VIDS="soccer_4cif.y4m" make install install-lib-static
公式) http://www.videolan.org/developers/x264.html
xvid
libtoolが事前に必要だが、yumでインストールしてある。
wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz tar zxvf xvidcore-1.3.2.tar.gz cd xvidcore cd build/generic/ ./bootstrap.sh ./configure --prefix=/usr/local/ffmpeg-libs make make install
libcdio
wget http://ftp.gnu.org/gnu/libcdio/libcdio-0.90.tar.gz tar zxvf libcdio-0.90.tar.gz cd libcdio-0.90 LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
libcdio-paranoia
libcdio
が必要。yumにも存在するが、yumのものは認識しなかったので自分で入れることにした。
wget "https://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+0.90+1.tar.bz2" tar jxvf libcdio-paranoia-10.2+0.90+1.tar.bz2 cd libcdio-paranoia-10.2+0.90+1 LD_RUN_PATH=/usr/local/ffmpeg-libs/lib \ CFLAGS=-I/usr/local/ffmpeg-libs/include \ LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
ffmpeg / FFmpeg 2.0.1 "Nameless"
wget http://www.ffmpeg.org/releases/ffmpeg-2.0.1.tar.gz tar zxvf ffmpeg-2.0.1.tar.gz cd ffmpeg-2.0.1
FF_HUFFMAN_BITS
を10
から12
に増やす。
$ vi libavcodec/huffman.h #define FF_HUFFMAN_BITS 12
./configure \ --enable-gpl \ --enable-version3 \ --enable-avisynth \ --enable-fontconfig \ --enable-libass \ --enable-libbluray \ --enable-libcaca \ --enable-libcdio \ --enable-libfreetype \ --enable-libgsm \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --enable-libopenjpeg \ --enable-libopus \ --enable-librtmp \ --enable-libsoxr \ --enable-libspeex \ --enable-libtheora \ --enable-libtwolame \ --enable-libvidstab \ --enable-libvo-aacenc \ --enable-libvo-amrwbenc \ --enable-libvorbis \ --enable-libvpx \ --enable-libwavpack \ --enable-libx264 \ --enable-libxvid \ --disable-outdev=sdl \ --disable-ffprobe \ --disable-ffserver \ --optflags='-O2 -finline-functions'
make make install
リンク確認
今回はstaticリンクをしていないので、大量のsoを見ています。これは後ほどstaticリンクに変えていきたいと思います。
# ldd `which ffmpeg` linux-vdso.so.1 => (0x00007ffff4dff000) libcdio_paranoia.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_paranoia.so.1 (0x00007f4d5035c000) libcdio_cdda.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_cdda.so.1 (0x00007f4d50152000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4d4ff2e000) libwavpack.so.1 => /usr/local/ffmpeg-libs/lib/libwavpack.so.1 (0x00007f4d4fd06000) libvorbisenc.so.2 => /usr/local/ffmpeg-libs/lib/libvorbisenc.so.2 (0x00007f4d4f837000) libvorbis.so.0 => /usr/local/ffmpeg-libs/lib/libvorbis.so.0 (0x00007f4d4f608000) libvo-amrwbenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-amrwbenc.so.0 (0x00007f4d4f3ee000) libvo-aacenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-aacenc.so.0 (0x00007f4d4f1d1000) libvidstab.so.0.9 => /usr/local/ffmpeg-libs/lib/libvidstab.so.0.9 (0x00007f4d4efc3000) libtwolame.so.0 => /usr/local/ffmpeg-libs/lib/libtwolame.so.0 (0x00007f4d4eda0000) libtheoraenc.so.1 => /usr/local/ffmpeg-libs/lib/libtheoraenc.so.1 (0x00007f4d4eb5b000) libtheoradec.so.1 => /usr/local/ffmpeg-libs/lib/libtheoradec.so.1 (0x00007f4d4e940000) libspeex.so.1 => /usr/local/ffmpeg-libs/lib/libspeex.so.1 (0x00007f4d4e721000) libsoxr.so.0 => /usr/local/ffmpeg-libs/lib/libsoxr.so.0 (0x00007f4d4e4db000) librtmp.so.0 => /usr/local/ffmpeg-libs/lib/librtmp.so.0 (0x00007f4d4e2bf000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f4d4e0bb000) libz.so.1 => /lib64/libz.so.1 (0x00007f4d4dea4000) libopus.so.0 => /usr/local/ffmpeg-libs/lib/libopus.so.0 (0x00007f4d4dc64000) libopenjpeg.so.1 => /usr/local/ffmpeg-libs/lib/libopenjpeg.so.1 (0x00007f4d4da3d000) libopencore-amrwb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrwb.so.0 (0x00007f4d4d829000) libopencore-amrnb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrnb.so.0 (0x00007f4d4d600000) libmp3lame.so.0 => /usr/local/ffmpeg-libs/lib/libmp3lame.so.0 (0x00007f4d4d378000) libmodplug.so.1 => /usr/local/ffmpeg-libs/lib/libmodplug.so.1 (0x00007f4d4d0a7000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f4d4ce0a000) libcaca.so.0 => /usr/local/ffmpeg-libs/lib/libcaca.so.0 (0x00007f4d4cb41000) libbluray.so.1 => /usr/local/ffmpeg-libs/lib/libbluray.so.1 (0x00007f4d4c91a000) libass.so.4 => /usr/local/ffmpeg-libs/lib/libass.so.4 (0x00007f4d4c700000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f4d4c4ca000) libm.so.6 => /lib64/libm.so.6 (0x00007f4d4c245000) librt.so.1 => /lib64/librt.so.1 (0x00007f4d4c03d000) libc.so.6 => /lib64/libc.so.6 (0x00007f4d4bcaa000) libcdio.so.14 => /usr/local/ffmpeg-libs/lib/libcdio.so.14 (0x00007f4d4ba81000) /lib64/ld-linux-x86-64.so.2 (0x00007f4d50566000) libogg.so.0 => /usr/local/ffmpeg-libs/lib/libogg.so.0 (0x00007f4d4b87b000) libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f4d4b66d000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4d4b410000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4d4b076000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4d4ad6f000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4d4ab59000) libncursesw.so.5 => /lib64/libncursesw.so.5 (0x00007f4d4a92a000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f4d4a5d7000) libfribidi.so.0 => /usr/local/ffmpeg-libs/lib/libfribidi.so.0 (0x00007f4d4a3bf000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f4d4a197000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f4d49f52000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f4d49c6c000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f4d49a68000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f4d4983b000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f4d4961a000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f4d4940e000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f4d4920b000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4d48ff1000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4d48dd1000)
Version確認
ffmpeg -version ffmpeg version 2.0.1 built on Aug 30 2013 16:30:36 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3) configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --optflags='-O2 -finline-functions' libavutil 52. 38.100 / 52. 38.100 libavcodec 55. 18.102 / 55. 18.102 libavformat 55. 12.100 / 55. 12.100 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 79.101 / 3. 79.101 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100
おわり
というわけで、ひとまずビルドできました。
netc
初めまして。
VPSサーバー(CentOs)にFFMPEGの最新バージョンをインストールしたいのですが、うまくいきません。
現在、yumで入るFFMPEG(0.6.5)をインストールしていますが、上書き?はできないのでしょうか?
予め古いバージョンのFFMPEGをアンインストールする必要があるのでしょうか?
無知な質問で恐縮なのですが、よろしくお願いいたします。
タムタム
こんにちは。
yumで入れたffmpegが混在しても、何も問題はないと思いますよ。
うまくいかないという部分が具体的に何を指しているのかはわかりませんが、もしgit cloneで持ってきている依存ライブラリがビルドできないのであれば、特定のリビジョンかtagを指定してcheckoutすれば通ると思います。