|
|
发表于 2006-7-11 12:15:01
|
显示全部楼层
arch下主要由pacman来管理那些二进制包,和apt类似,而且官方还提供了一个abs系统(跟portage类似,不知道说的准不准确),用来构建自己想要的包,/var/abs/下就是abs tree,存放的是那些PKGBUILD
- [rainy@wys ~]$ ls /var/abs/
- base editors kernels multimedia PKGBUILD.proto x11-drivers
- daemons extra lib network system x11-libs
- devel install.proto local office x11
- [rainy@wys ~]$
复制代码
下面就是一个PKGBUILD的范例:
- # $Id: PKGBUILD,v 1.66 2006/06/27 10:42:46 tpowa Exp $
- # Maintainer: dorphell <dorphell@archlinux.org>
- pkgname=mplayer
- pkgver=1.0pre8
- pkgrel=1
- pkgdesc="A movie player for linux"
- arch=(i686 x86_64)
- depends=('libmad' 'libungif' 'cdparanoia' 'gtk2'
- 'codecs' 'sdl' 'libjpeg' 'lame' 'libtheora'
- 'esd' 'faad2' 'ttf-bitstream-vera' 'libxxf86dga'
- 'fontconfig' 'libxinerama' 'libxv' 'libpng'
- 'libxxf86vm' 'xvidcore' 'freetype2' 'libgl')
- source=(ftp://ftp.mplayerhq.hu/MPlayer/releases/MPlayer-${pkgver}.tar.bz2
- ftp://ftp.mplayerhq.hu/MPlayer/Skin/Blue-1.5.tar.bz2)
- [ "$CARCH" = "x86_64" ] && source=(${source[@]} \
- http://www.gentoo.org/cgi-bin/viewcvs.cgi/*checkout*/media-video/mplayer/files/mplayer-1.0_pre7-gcc4-amd64.patch)
- url="http://www.mplayerhq.hu/"
- md5sums=('f82bb2bc51b6cd5e5dd96f88f6f98582' '371fa9457f0f23295ddaa93b57d862a0')
- [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} '9c52b8b6d2256cc936201aad760823c6')
- build() {
- cd $startdir/src/MPlayer-${pkgver}
- [ "$CARCH" == "x86_64" ] && $(patch -Np1 -i ../mplayer-1.0_pre7-gcc4-amd64.patch || return 1)
- if [ "$CARCH" == "x86_64" ]; then
- # for x86_64 arch64 fix: remove: --with-win32libdir=/usr/lib/win32
- ./configure --prefix=/usr --enable-gui --disable-arts --enable-x11 \
- --enable-runtime-cpudetection --enable-sdl \
- --enable-theora --confdir=/etc/mplayer \
- --enable-xvid --enable-gl --enable-tv-v4l --enable-tv-v4l2 --enable-largefiles \
- --disable-liblzo --disable-speex --disable-openal --disable-jack --disable-faac \
- --disable-smb --disable-aa --disable-fribidi --disable-libdv --disable-musepack \
- --language=all
- else
- # *hint* next time build mplayer in chroot with only current on
- ./configure --prefix=/usr --enable-gui --disable-arts --enable-x11 \
- --enable-runtime-cpudetection --enable-sdl \
- --enable-theora --with-win32libdir=/usr/lib/win32 --confdir=/etc/mplayer \
- --enable-xvid --enable-gl --enable-tv-v4l --enable-tv-v4l2 --enable-largefiles \
- --disable-liblzo --disable-speex --disable-openal --disable-jack --disable-faac \
- --disable-smb --disable-aa --disable-fribidi --disable-libdv --disable-musepack \
- --language=all
- fi
- make || return 1
- make DESTDIR=${startdir}/pkg install
- cp etc/{codecs.conf,input.conf,example.conf} ${startdir}/pkg/etc/mplayer/
- ln -s /usr/share/fonts/TTF/Vera.ttf ${startdir}/pkg/usr/share/mplayer/subfont.ttf
- rm -rf ${startdir}/pkg/usr/share/mplayer/font
- mv ${startdir}/src/Blue ${startdir}/pkg/usr/share/mplayer/skins/default
- }
复制代码
进入某个软件的目录之后执行makepkg就开始自动下载源码和编译打包了,当然也可以通过修改PKGBUILD来建立自己想要的包(相关优化参数可以在/etc/makepkg.conf里设置,不过没有Gentoo的定制性强)。
关于速度,大多数从Gentoo转到Arch的朋友说感觉不到差别。
我想最大的优势应该是在于不用什么都编译吧,通常一些最新的软件,官方都在第一时间打包了。而Gentoo提供的二进制包通常都不是最新的,如果要用最新的只好等待漫长的编译过程。
那些不喜欢什么都要编译的朋友可以试试arch。 |
|