文件操作 - builddependencies
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/doc/rpm/builddependencies
编辑文件内容
/*! \page builddependencies Generating build dependencies automatically As we start updating packages for the next Red Hat distro, I'd like to see packages start to make use of build dependencies. Basically build dependencies are just like install dependencies, but they are resolved against the build system just after parsing the spec file. Syntactically, build dependencies look just like install dependencies in a spec file with "Build" prefixed: \verbatim BuildPreReq: BuildRequires: BuildConflicts: \endverbatim All the above dependencies include versions, files, existence/range tests, etc. The build dependency checking can also be turned off with --nodeps if necessary just like install dependency checking can. Eventually, build dependencies will be automated in rpm, but the major impediment to that effort is the engineering required to maintain the pretense that src rpm's are "noarch". Meanwhile, I've added a package called "InDependence-1.0" to powertools-6.2 that may be of use in detecting build dependencies that can be added to spec files as part of rebuilding packages for Red Hat 6.2. Here's a short example of how to generate the package/file names that were used while building gnorpm using InDependence: \verbatim rpm -U /mnt/redhat/comps/powertools/6.2/i386/InDependence-1.0-3.i386.rpm rpm -i /mnt/redhat/comps/dist/6.2/SRPMS/gnorpm-0.9-11.src.rpm cd /usr/src/redhat/SPECS dep -detail rpmbuild -ba gnorpm.spec >& xxx ... (the build will take longer since both dep and strace are pigs) ... grep -- '::' xxx > yyy \endverbatim \verbatim Aside: The dep perl wrapper is a "pig" only because it's exec'ing rpm -qf <filename> in order to turn filenames into package names. There are easier/faster ways to get this information... There's no way to speed up the /sbin/strace -q -etrace=open,execve -o ... command itself. The eventual implementation in rpm will snatch the same open/execve syscalls using LD_PRELOAD. Patches cheerfully accepted :-) \endverbatim Here's what's in yyy (\<packagename\>::\<filename\> format): \verbatim ORBit-devel-0.4.95-2::/usr/bin/orbit-config XFree86-libs-3.3.5-6::/usr/X11R6/lib/libICE.so.6 XFree86-libs-3.3.5-6::/usr/X11R6/lib/libSM.so.6 XFree86-libs-3.3.5-6::/usr/X11R6/lib/libX11.so.6 XFree86-libs-3.3.5-6::/usr/X11R6/lib/libXext.so.6 audiofile-0.1.9-1::/usr/lib/libaudiofile.so.0 autoconf-2.13-5::/usr/bin/autoconf autoconf-2.13-5::/usr/bin/autoheader autoconf-2.13-5::/usr/share/autoconf/acgeneral.m4 autoconf-2.13-5::/usr/share/autoconf/autoconf.m4f automake-1.4-5::/usr/bin/aclocal automake-1.4-5::/usr/bin/automake bash-1.14.7-16::/bin/sh bash-1.14.7-16::/etc/bashrc binutils-2.9.1.0.23-7::/usr/bin/strip binutils-2.9.1.0.23-7::/usr/lib/libbfd-2.9.1.0.24.so binutils-2.9.1.0.23-7::/usr/lib/libopcodes-2.9.1.0.24.so bzip2-0.9.5c-1::/usr/lib/libbz2.so.0 dev-2.7.10-2::/dev/null diffutils-2.7-16::/usr/bin/cmp egcs-1.1.2-25::/usr/bin/gcc egcs-1.1.2-25::/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs esound-0.2.14-1::/usr/lib/libesd.so.0 file-3.27-3::/usr/bin/file file-3.27-3::/usr/share/magic fileutils-4.0-8::/bin/chgrp fileutils-4.0-8::/bin/chmod fileutils-4.0-8::/bin/chown fileutils-4.0-8::/bin/cp fileutils-4.0-8::/bin/ln fileutils-4.0-8::/bin/ls fileutils-4.0-8::/bin/mkdir fileutils-4.0-8::/bin/mv fileutils-4.0-8::/bin/rm fileutils-4.0-8::/usr/bin/install findutils-4.1-32::/usr/bin/xargs gawk-3.0.4-1::/bin/awk gawk-3.0.4-1::/bin/gawk gettext-0.10.35-13::/usr/bin/xgettext glib-1.2.5-1::/usr/lib/libglib-1.2.so.0 glib-1.2.5-1::/usr/lib/libgmodule-1.2.so.0 glib-devel-1.2.5-1::/usr/bin/glib-config glibc-2.1.2-13::/etc/localtime glibc-2.1.2-13::/etc/nsswitch.conf glibc-2.1.2-13::/lib/ld-linux.so.2 glibc-2.1.2-13::/lib/libc.so.6 glibc-2.1.2-13::/lib/libcrypt.so.1 glibc-2.1.2-13::/lib/libdb.so.2 glibc-2.1.2-13::/lib/libdl.so.2 glibc-2.1.2-13::/lib/libm.so.6 glibc-2.1.2-13::/lib/libnsl.so.1 glibc-2.1.2-13::/lib/libnss_dns.so.2 glibc-2.1.2-13::/lib/libnss_files.so.2 glibc-2.1.2-13::/lib/libnss_nis.so.2 glibc-2.1.2-13::/lib/libnss_nisplus.so.2 glibc-2.1.2-13::/lib/libresolv.so.2 glibc-2.1.2-13::/usr/bin/ldd gnome-libs-1.0.54-1::/usr/lib/libart_lgpl.so.2 gnome-libs-1.0.54-1::/usr/lib/libgnome.so.32 gnome-libs-1.0.54-1::/usr/lib/libgnomesupport.so.0 gnome-libs-1.0.54-1::/usr/lib/libgnomeui.so.32 gnome-libs-devel-1.0.54-1::/usr/bin/gnome-config grep-2.3-2::/bin/egrep grep-2.3-2::/bin/fgrep grep-2.3-2::/bin/grep gtk+-1.2.5-2::/usr/lib/libgdk-1.2.so.0 gtk+-1.2.5-2::/usr/lib/libgtk-1.2.so.0 imlib-1.9.7-1::/usr/lib/libgdk_imlib.so.1 libghttp-1.0.4-1::/usr/lib/libghttp.so.1 libtool-1.3.3-1::/usr/bin/libtoolize libtool-1.3.3-1::/usr/share/libtool/config.guess libtool-1.3.3-1::/usr/share/libtool/config.sub libtool-1.3.3-1::/usr/share/libtool/ltconfig libtool-1.3.3-1::/usr/share/libtool/ltmain.sh libxml-1.4.0-1::/usr/lib/libxml.so.1 libxml-devel-1.4.0-1::/usr/bin/xml-config m4-1.4-12::/usr/bin/m4 make-3.77-6::/usr/bin/make mktemp-1.5-1::/bin/mktemp net-tools-1.53-1::/bin/hostname patch-2.5-9::/usr/bin/patch rootfiles-5.2-5::/root/.bashrc rpm-3.0.4-0.16::/bin/rpm rpm-3.0.4-0.16::/usr/lib/librpm.so.0 rpm-3.0.4-0.16::/usr/lib/rpm/find-provides rpm-3.0.4-0.16::/usr/lib/rpm/find-requires rpm-3.0.4-0.16::/usr/lib/rpm/macros rpm-3.0.4-0.16::/usr/lib/rpm/rpmpopt rpm-3.0.4-0.16::/usr/lib/rpm/rpmrc sed-3.02-4::/bin/sed setup-2.0.5-1::/etc/group setup-2.0.5-1::/etc/host.conf setup-2.0.5-1::/etc/passwd sh-utils-2.0-1::/bin/basename sh-utils-2.0-1::/bin/false sh-utils-2.0-1::/bin/sleep sh-utils-2.0-1::/bin/true sh-utils-2.0-1::/usr/bin/expr sh-utils-2.0-1::/usr/bin/id texinfo-3.12h-2::/usr/bin/makeinfo textutils-2.0-2::/bin/cat textutils-2.0-2::/bin/sort textutils-2.0-2::/usr/bin/cut textutils-2.0-2::/usr/bin/tr zlib-1.1.3-5::/usr/lib/libz.so.1 \endverbatim The information can be used to generate build prerequisites. What is still needed is a sensible approach on \verbatim 1) eliminating obvious common dependencies (e.g. libtool, egcs). 2) identifying (and removing for now) per-platform build dependencies. 3) deciding on whether to add the build dependency on a file or on the package that contains the file. 4) if adding a dependency on a package, choosing version ranges as appropriate. \endverbatim but that's up to individual packagers. */
修改文件时间
将文件时间修改为当前时间的前一年
删除文件