我想得到一个RPM软件包的源代码,所有补丁都应用了。(apt source
的作用)
例如,bash
。下面是我尝试过的方法。
首先,我通过yumdownloader
下载src RPM包:
yumdownloader --source bash
然后,我得到了一个名为bash-4.2.46-35.el7_9.src.rpm
的包。
rpm2cpio bash-4.2.46-35.el7_9.src.rpm | cpio -ivdm
然后,我得到了以下文件:
[root@ce944fc560a2 src]# ls
bash-2.02-security.patch bash-3.2-ssh_source_bash.patch bash-4.2-cve-2014-7169-0.patch bash-4.2-man-ulimit.patch bash-4.3-cve-2016-0634.patch bash-5.0-syslog-history.patch bash42-003 bash42-013 bash42-023 bash42-033 bash42-043
bash-2.03-paths.patch bash-4.0-nobits.patch bash-4.2-cve-2014-7169-1.patch bash-4.2-manpage.patch bash-4.3-cve-2016-7543.patch bash-bashbug.patch bash42-004 bash42-014 bash42-024 bash42-034 bash42-044
bash-2.03-profile.patch bash-4.1-broken_pipe.patch bash-4.2-cve-2014-7169-2.patch bash-4.2-manpage_trap.patch bash-4.3-dircomp-append-slash.patch bash-cve-2016-9401.patch bash42-005 bash42-015 bash42-025 bash42-035 bash42-045
bash-2.05a-interpreter.patch bash-4.1-defer-sigchld-trap.patch bash-4.2-double-alloc.patch bash-4.2-missing-opt-cd.patch bash-4.3-pipefd-leak.patch bash-infotags.patch bash42-006 bash42-016 bash42-026 bash42-036 bash42-046
bash-2.05b-debuginfo.patch bash-4.1-examples.patch bash-4.2-enable-hyphened-fn-export.patch bash-4.2-missing_closes.patch bash-4.3-trapped-signals.patch bash-requires.patch bash42-007 bash42-017 bash42-027 bash42-037 bash42-052
bash-2.05b-manso.patch bash-4.1-trap.patch bash-4.2-env-inject.patch bash-4.2-noecho.patch bash-4.3-wshouldquote.patch bash-setlocale.patch bash42-008 bash42-018 bash42-028 bash42-038 bash42-053
bash-2.05b-pgrp_sync.patch bash-4.2-brace-expand.patch bash-4.2-extglob-man.patch bash-4.2-rc2-logout.patch bash-4.4-bracketed-paste.patch bash-tty-tests.patch bash42-009 bash42-019 bash42-029 bash42-039 dot-bash_logout
bash-2.05b-readline-oom.patch bash-4.2-case-in-command-subst.patch bash-4.2-history-hang.patch bash-4.2-signal.patch bash-4.4-cve-2019-9924.patch bash.spec bash42-010 bash42-020 bash42-030 bash42-040 dot-bash_profile
bash-2.05b-xcc.patch bash-4.2-check-debugger.patch bash-4.2-ifs-in-temp-env.patch bash-4.2-size_type.patch bash-4.4-param-expansion.patch bash42-001 bash42-011 bash42-021 bash42-031 bash42-041 dot-bashrc
bash-3.2-audit.patch bash-4.2-coverity.patch bash-4.2-leak-compound.patch bash-4.2.tar.gz bash-4.4-pipeline-pgrp.patch bash42-002 bash42-012 bash42-022 bash42-032 bash42-042 fix-shopt-lastpipe-mode-crash.patch
有一个tgz文件bash-4.2.tar.gz
,它是原始的bash源代码和许多补丁文件。
如何将这些文件打补丁到原来的源代码?如果我的步骤是错误的,有没有简单的方法来解决我的问题?
1条答案
按热度按时间nzk0hqpo1#
在阅读了Rebuild a Source RPM之后,我找到了解决问题的方法。
首先,使用
yumdownloader
下载源包:然后,使用
rpmbuild
重新生成软件包,而不进行构建和依赖关系检查:rpmbuild
将帮助您处理所有的事情。那么源代码在这里:$HOME/rpmbuild/BUILD/bash-4.2/
: