rpmbuild已安装(但未打包)的文件源

时间:2012-11-15 16:20:02

标签: linux packaging redhat rpm rpmbuild

我正在尝试从REDHAT 6系统上的二进制文件构建RPM。我将所有文件都包含在%files部分中(查找/ path / to / fake / install -type f>> specfile)

当我运行rpmbuild -bb specfile --target x86_64时,我得到了

检查未打包的文件:/ usr / lib / rpm / check-files /path/to/rpmbuild/BUILDROOT/Package-1.0.0-1.el6.x86_64 错误:找到已安装(但未打包)的文件:

RPM构建错误:     找到已安装(但未打包)的文件:

请注意,错误消息中未列出任何文件。我不确定什么是错的,还有想法?

3 个答案:

答案 0 :(得分:19)

您可以通过

忽略此类错误

%define _unpackaged_files_terminate_build 0

另见 http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s05s07.html

答案 1 :(得分:6)

我猜你的/ path / to / fake / install是不正确的。

%files部分中的路径必须是最终安装文件的路径,例如/usr/local/bin/myprog。在rpm版本中,在%build部分中,您需要确保将文件放在%files部分中指定的相同位置,或者使用buildroot选项{ {1}}并在规范文件中使用rpmbuild变量,其子路径与$RPM_BUILD_ROOT列表匹配,在此示例中为%files。有关详细信息,请参阅http://www.rpm.org/max-rpm-snapshot/ch-rpm-anywhere.html

答案 2 :(得分:0)

可能发生这种情况的一个示例:假设在class MainActivity : AppCompatActivity() { private lateinit var navHostFragment: NavHostFragment private lateinit var navController: NavController private lateinit var drawerLayout: DrawerLayout private lateinit var binding: MainActivityBinding private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.main_activity) setSupportActionBar(binding.toolBar) navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment navController = navHostFragment.navController drawerLayout = binding.drawerLayout appBarConfiguration = AppBarConfiguration(setOf(R.id.task_page),drawerLayout) setupActionBarWithNavController(navController, drawerLayout) binding.navView.setupWithNavController(navController) NavigationUI.setupWithNavController(binding.navigationView, navController) } override fun onSupportNavigateUp(): Boolean { return NavigationUI.navigateUp(navController, drawerLayout) } } 部分中有一个%post,在%install_info部分中有一个关联的%postun。这需要在%install_info_delete部分中使用类似%install的命令显式删除信息文件的中间目录。