2016-04-24 6 views
1

私は、Linuxマシンへの展開のために、Windows上のRPM Mavenプラグインを使用してRPMを構築しようとしています。CentOSのRPMを構築する

OS of machine that's building RPM: Windows 7 Enterprise, Cygwin 2.5.1

OS of VM installing RPM: CentOS 7

私はコマンドをクリーンインストールMVNを実行したとビルドが成功しています。私は、サーバーへの上にこれをscpコマンドとyum install -y Core1337-1.0-1.noarch.rpm

を実行したときに

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 48.273s 
[INFO] Finished at: Sun Apr 24 21:08:51 BST 2016 
[INFO] Final Memory: 10M/157M 
[INFO] ------------------------------------------------------------------------ 

はしかし、私は次のエラーを取得する:

Transaction check error: package Core1337-1.0-1.noarch is 
intended for a different operating system 

次のためのpom.xmlファイルから切り取らXMLですプラグイン。

<modelVersion>4.0.0</modelVersion> 
    <groupId>com.core</groupId> 
    <artifactId>Core1337</artifactId> 
    <packaging>rpm</packaging> 
    <version>1.0</version> 
    <name>Core Libz</name> 

    <properties> 
     <targetOS>i386-linux</targetOS> 
     <rpm-base>opt</rpm-base> 
     <rpm-path>app</rpm-path> 
     <base-dir>core</base-dir> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    </dependencies> 

    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>rpm-maven-plugin</artifactId> 
      <version>2.1.5</version> 
      <extensions>true</extensions> 
      <configuration> 
       <license>GPL (c) 2005, SWWDC</license> 
       <distribution>eSQuireDistro</distribution> 
       <group>eSQuireDevel</group> 
       <requires> 
        <require>at</require> 
        <require>wget</require> 
        <require>tree</require> 
        <require>cronie</require> 
        <require>openssh-server</require> 
       </requires> 
       <mappings> 
        <mapping> 
         <directory>/${rpm-base}/${rpm-path}/${base-dir}/python</directory> 
         <filemode>744</filemode> 
         <username>root</username> 
         <groupname>root</groupname> 
         <configuration>false</configuration> 
         <directoryIncluded>true</directoryIncluded> 
         <recurseDirectories>true</recurseDirectories> 
         <dependency /> 
         <sources> 
          <source> 
           <location>src/main/python</location> 
          </source> 
         </sources> 
        </mapping> 
        <mapping> 
         <directory>/${rpm-base}/${rpm-path}/${base-dir}/scripts</directory> 
         <filemode>744</filemode> 
         <username>root</username> 
         <groupname>root</groupname> 
         <configuration>false</configuration> 
         <directoryIncluded>true</directoryIncluded> 
         <recurseDirectories>true</recurseDirectories> 
         <dependency /> 
         <sources> 
          <source> 
           <location>src/main/scripts</location> 
          </source> 
         </sources> 
        </mapping> 
       </mappings> 
       <preinstallScriptlet> 
        <script>/bin/logger "installing"</script> 
       </preinstallScriptlet> 
       <postinstallScriptlet> 
        <script>/bin/logger "uninstalling"</script> 
       </postinstallScriptlet> 
      </configuration> 
     </plugin> 
    </plugins> 

これは、生成されたSPECファイルです:

%define __jar_repack 0 
Name: Core1337 
Version: 1.0 
Release: 1 
Summary: Core Libz 
License: GPL (c) 2005, SWWDC 
Distribution: eSQuireDistro 
Group: eSQuireDevel 
Requires: at 
Requires: wget 
Requires: tree 
Requires: cronie 
Requires: openssh-server 
autoprov: yes 
autoreq: yes 
BuildArch: noarch 
BuildRoot: /cygdrive/C/Users/ala/workspace/alan/Core/target/rpm/Core1337/buildroot 

%description 

%install 

if [ -d $RPM_BUILD_ROOT ]; 
then 
    mv /cygdrive/C/Users/ala/workspace/alan/Core/target/rpm/Core1337/tmp-buildroot/* $RPM_BUILD_ROOT 
else 
    mv /cygdrive/C/Users/ala/workspace/alan/Core/target/rpm/Core1337/tmp-buildroot $RPM_BUILD_ROOT 
fi 

%files 

%attr(744,root,root) "/opt/esquire/core/python/" 
%attr(744,root,root) "/opt/esquire/core/scripts/" 

%pre 
/bin/logger "installing" 

%post 
/bin/logger "uninstalling" 

どのように私はLinuxのヘッダとRPMを構築するためのプラグインを設定できますか?どんな助けでも大歓迎です!

+0

あなたのpom.xmlの行 "のi386-linuxのは" 非常に疑わしいです... –

+0

http://www.mojohaus.org/rpm-maven-plugin/ident-params.html#targetOSこれが全てです私は見つけることができますが、挿入する必要がある値に関する情報を得ることはできません – AK47

+0

あなた自身でそれを記入する必要があるかどうかわかりません。 msgstr "デフォルトでは、これはシステムプロパティos.nameに設定されます。"私はLinuxでrpmbuildを使用しています。私は自分自身でそれを記入することはありません。あなたが "noarch"を作りたいと思わない限り;その場合は "noarch"を記入してください –

答えて

3

Linuxマシンに配備するためにWindows上でRPMSを構築するのは複雑な場合があります。私はそれが展開される同じOS上にRPMSを構築することをお勧めします。

関連する問題