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を構築するためのプラグインを設定できますか?どんな助けでも大歓迎です!
あなたのpom.xmlの行 "のi386-linuxの は" 非常に疑わしいです... –
http://www.mojohaus.org/rpm-maven-plugin/ident-params.html#targetOSこれが全てです私は見つけることができますが、挿入する必要がある値に関する情報を得ることはできません – AK47
あなた自身でそれを記入する必要があるかどうかわかりません。 msgstr "デフォルトでは、これはシステムプロパティos.nameに設定されます。"私はLinuxでrpmbuildを使用しています。私は自分自身でそれを記入することはありません。あなたが "noarch"を作りたいと思わない限り;その場合は "noarch"を記入してください –