源RPM无法查找文件

时间:2014-07-14 18:06:40

标签: redhat rpm

我正在尝试构建一个我正在研究的node.js项目的RPM。项目的代码完全包含在一个目录及其子目录中。这是我的构建脚本的一部分:

Put everything in the SOURCES directory, except the node_modules
echo "Copying sources..."
cd $DIR/dashboard
tar -zcf $DIR/rpmbuild/SOURCES/project-$VERSION.tgz . --exclude=node_modules > /dev/null
cd $DIR

# Create the spec file
touch $DIR/rpmbuild/SPECS/specfile
# write to it
cat >$DIR/rpmbuild/SPECS/specfile <<EOL
Summary: [Summary]
Name: [Name]
Version: $VERSION
Release: 1
License: GPL
Group: Applications/WebApp
Source: [Name]-$VERSION.tgz
Vendor: None
Requires: nodejs

%description
[Description]

%prep
echo "in prep"
echo $(ls -al)
%setup -c
npm install
yes | ./compile_all.sh
mv app/index.html app/index_big.html
mv app/index_small.html app/index.html

%build
echo "Nothing to build!" 

%install
mkdir -p /opt/project
mv -r ./ /opt/project
ln -s /opt/project/server_start /usr/local/bin
ln -s /opt/project/server_stop /usr/local/bin

%files
$DIR/rpmbuild/SOURCES
$DIR/rpmbuild/SPECS

EOL

HOME=`pwd` rpmbuild -bs $DIR/rpmbuild/SPECS/specfile

compile_all.sh脚本只是缩小html,css和javascript并将它们连接起来。 index_small.html使用较小的版本。 $ DIR指向脚本的位置,该位置是项目代码上方的一个目录。

该脚本确实生成了源rpm。我使用mc查看了它,在CONTENTS.cpio里面有源代码的specfile和tgz存档。但是,尝试安装不起作用。使用rpm -Vp project.rpm,我可以看到它将specfile和tgz存档列为missing。启用详细模式后,我会看到类似的内容:

Directories not explicitly included in package: 
    /home/USERNAME/rpmbuild/SPECS/
    /home/USERNAME/rpmbuild/SOURCES`

我的rpmbuild目录不在我的主目录中,它与构建脚本位于同一目录中。这导致了我的实际问题:如何将rpmbuild指向正确的位置?

0 个答案:

没有答案