我最近升级到 Gradle 8 发现Gradle 插件门户nebula.ospackage中分发的插件不兼容。
在gradle-ospackage-plugin GitHub存储库中,有 11 版本声称解决了与 Gradle 8 的不兼容性问题。
此代码不起作用:
plugins {
id "nebula.ospackage" version "11.0.0"
}
Run Code Online (Sandbox Code Playgroud)
和:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'nebula.ospackage:nebula.ospackage.gradle.plugin:11.0.0')
Searched in the following repositories:
Gradle Central Plugin Repository
Run Code Online (Sandbox Code Playgroud)
如何在 Gradle 中使用来自 GitHub 而不是来自官方 Gradle 插件网站的插件?
谢谢
这是我尝试使用CMake 2.8.2重现问题的设置:
/test.sh:
/CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
SET(CPACK_PACKAGE_NAME test)
SET(CPACK_PACKAGE_VERSION 1.0)
LIST(APPEND CPACK_GENERATOR RPM)
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "test.sh")
INCLUDE(CPack)
Run Code Online (Sandbox Code Playgroud)
然后:
mkdir build && cd build && cmake .. && make package
Run Code Online (Sandbox Code Playgroud)
结果:
CPackRPM:警告:CPACK_RPM_POST_INSTALL_SCRIPT_FILE不存在 - 忽略
如何让构建系统知道我的文件test.sh?
我有这个构建过程,为一组Linux发行版创建rpms.
这个创作花了很多时间,为此我正在优化它.我研究了rpmbuild并意识到rpmbuild需要一个tarball并将其解压缩以启动构建过程.
有一种方法可以避免使用tarball吗?因为我已经开始使用源代码的过程,然后我在tarball中压缩它,这似乎没用,因为rpmbuild适用于源代码,而不是tarballs
还有一些Requires标签不满足的东西.所以我写了一个脚本来验证这些东西,但我在哪里放置它们?如果没有找到,那么我想退出安装,提示用户在尝试再次安装此rpm之前执行这些步骤.
写exit 1在%install标签构建失败,使用的rpmbuild转速.说%install has a bad exit code.
编辑:让我举个例子.我最初想要测试的是Oracle Java 6是否存在.如果没有,那么提供Java6的路径.如果用户未能提供一个...退出RPM.不允许使用更高的Java,如果没有java,安装不应该成功.如果用户不想安装java rpm软件包,则无法将其置于"需要点"中.
希望我明白我的观点.
在尝试从http://www.imagemagick.org/download/linux/CentOS/x86_64/安装最新的ImageMagick(和devel)RPM时,我收到此消息
ImageMagick-libs = 6.8.5-8 is needed by ImageMagick-devel-6.8.5-8.x86_64
Run Code Online (Sandbox Code Playgroud)
令人困惑的是,没有列出ImageMagick-libs RPM,搜索还没有产生解决方案.有没有解决这种存在依赖的方法?
尝试通过Putty以root身份记录的简单yum更新给了我:
---> Package python-paramiko.noarch 0:1.12.4-1.el7 will be an update
--> Processing Dependency: python(abi) = 2.7 for package: python-paramiko-1.124-1.el7.noarch
--> Processing Conflict: libdb4-4.8.30-13.el7.x86_64 conflicts filesystem < 3
--> Finished Dependency Resolution
Error: Package: cyrus-sasl-lib-2.1.23-15.el6.x86_64 (@base)
Requires: libdb-4.7.so()(64bit)
Removing: db4-4.7.25-18.el6_4.x86_64 (@base)
libdb-4.7.so()(64bit)
Obsoleted By: libdb4-4.8.30-13.el7.x86_64 (epel)
Not found
Error: Package: python-paramiko-1.12.4-1.el7.noarch (epel)
Requires: python(abi) = 2.7
Installed: python-2.6.6-52.el6.x86_64 (@updates)
python(abi) = 2.6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Run Code Online (Sandbox Code Playgroud)
期望更长但是堆栈不能让我把所有东西都写成相同数量的文本......无论如何......我真的不明白为什么会出现这个冲突问题...任何人都可以指出至少我正确的方向?
编辑:如果我启动yum …
在我的rpm中,我有一个完整的目录,我想用%config(noreplace)标记.使用%config中的语义,我希望在每次安装时使用rpm中的最新版本替换该目录中的文件.
使用这里的指南:http://www-uxsup.csx.cam.ac.uk/~jw35/docs/rpm_config.html,我尝试了以下内容:
%files
%config(noreplace) /my/saved/dir/*
%config /my/saved/dir/file1
Run Code Online (Sandbox Code Playgroud)
和
%files
%config /my/saved/dir/file1
%config(noreplace) /my/saved/dir/*
Run Code Online (Sandbox Code Playgroud)
希望特定的命令会覆盖glob,但它不起作用.是否有任何类似RPM的命令我可以用来强制嵌套在%config(noreplace)目录下的文件上的%config行为?
我已经安装了(在CentOS 7中)一个名为Rational Software Architect(RSA 9.5)的程序,它是一个富客户端平台,就像Eclipse一样,但没有实际安装RPM.RSA附带了一个安装bash脚本,它几乎只是将eclipse文件丢弃到文件系统上.我的Eclipse可执行文件/opt/IBM/SDP/eclipse与普通的Eclipse文件夹(如"插件","功能"和"dropins")处于同一级别.
我为之前版本的"真正的"Eclipse编写了一个spec文件,它只是安装了一些我作为jar文件编写的java插件,将它们放在"dropins"文件夹中,然后调用eclipse -clean -initializeEclipse与我的新插件同步.这仍适用于RSA.
我的问题归结为以前的事实,我只是在spec文件中有一行,
Requires: eclipse >= 4.4.2
因为Eclipse是作为RPM安装的.既然安装了RSA,取代了Eclipse,并且没有与之关联的RPM,我需要找到一种方法来告诉spec文件在安装RPM之前要求"dropins"文件夹存在.也许是这样的:
Requires: /opt/IBM/SDP/eclipse
我没有用上述方法取得任何成功,并想知道是否甚至可以根据文件而不是包来设置RPM要求?我找不到关于这个主题的任何文档,并希望你们都能提供帮助!提前致谢.
仅供参考......我在CentOS 7.2中使用rpm-build-4.11.3和rpmdevtools-8.3.
编辑:在规范中使用绝对路径时添加从yum返回的错误消息
[root@localhost trunk]# yum localinstall myplugin-1.1.6-rev1255.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
Examining myplugin-1.1.6-rev1255.x86_64.rpm: myplugin-1.1.6-rev1255.x86_64
Marking myplugin-1.1.6-rev1255.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package myplugin.x86_64 0:1.1.6-rev1255 will be installed
--> Processing Dependency: /opt/IBM/SDP/eclipse for package: myplugin-1.1.6-rev1255.x86_64
Loading mirror speeds from cached hostfile …
我是RPM打包的新手,但是rpmbuild似乎需要C++标准库,我不知道为什么.
这是RPM spec文件:
Name: go-github-release-test
Version: 0.0.1
Release: 1
License: LICENSE
Url:
Summary: Test of go-github-release process
%description
Test of go-github-release process
%prep
%build
%install
mkdir -p %{buildroot}/%{_bindir}
cp /root/go-github-release-test/build/go-github-release-test %{buildroot}/%{_bindir}
%files
%{_bindir}/go-github-release-test
%clean
%changelog
* Fri Jun 09 2017 Jerry W - 0.0.1-1
- added text to readme
- add CmakeLists.txt
- add appveyor.yml and travis.yml
- add gitignore
- moved main cpp around
- added helloworld.cpp
- added detectme.txt
- removed test dirlist
- added readme
- init: …Run Code Online (Sandbox Code Playgroud)