rpm默认在/usr/src/rpm下面编译,这非常可恨。我可不想编译个rpm包,还得sudo成root!
原来公司的老总给我配的环境,当时没记。现在只好自己摸索了。
man一下rpm,发现rpm命令行选项,改变不了这个。但是,有一条线索:它要读取一个rpmrc。
而标准配置的/usr/lib/rpm/rpmrc文件中,有这样一行:
macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/%{_target}/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros
看来,它是通过macros文件定义了一些东西。
查看一下标准的/usr/lib/rpm/macros,嗯,果然有这样的内容:
#==============================================================================
# ---- filesystem macros.
#
%_usr /usr
%_usrsrc %{_usr}/src
%_var /var
哈哈,找到了。
这样的话,根据rpmrc中的文件顺序,~/.rpmmacros肯定会替换掉/usr/lib/rpm/macros的。
于是:
一、在自己喜欢的目录下面,mkdir -p rpm/{BUILD,i686,SOURCES,SPEC,SRPMS}。
二、建立~/.rpmmacros,赋%_topdir为自己刚才建立的根目录,OK了。
原来公司的老总给我配的环境,当时没记。现在只好自己摸索了。
man一下rpm,发现rpm命令行选项,改变不了这个。但是,有一条线索:它要读取一个rpmrc。
而标准配置的/usr/lib/rpm/rpmrc文件中,有这样一行:
macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/%{_target}/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros
看来,它是通过macros文件定义了一些东西。
查看一下标准的/usr/lib/rpm/macros,嗯,果然有这样的内容:
#==============================================================================
# ---- filesystem macros.
#
%_usr /usr
%_usrsrc %{_usr}/src
%_var /var
哈哈,找到了。
这样的话,根据rpmrc中的文件顺序,~/.rpmmacros肯定会替换掉/usr/lib/rpm/macros的。
于是:
一、在自己喜欢的目录下面,mkdir -p rpm/{BUILD,i686,SOURCES,SPEC,SRPMS}。
二、建立~/.rpmmacros,赋%_topdir为自己刚才建立的根目录,OK了。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>