我在一所重点大学工作,我们有一项政策,要求每年扫描所有计算机的社会安全号码 (SSN)。我开始使用一个名为SS狙击手这是在 UIUC 创建的。不幸的是,支持该实用程序的人已不再在那所大学工作,它似乎已被遗弃。
不管怎样,我的实际问题是这样的:我正在尝试为 CentOS 6.2 服务器的 SSNiper 编译和构建一个新的 RPM,虽然编译阶段似乎工作得很好,但“make rpm”部分却因错误而死亡。
rm -f magic_test.o dbase.o ssniper.o list.o validate.o scan_file.o config_file.o ssn_fsm.o extension_test.o logging.o get_line.o list_test.o ssniper
darcs get . ssniper-`cat VERSION`-`cat RELEASE`
darcs failed: Not a repository: /home/racooper/download/ssniper-0.9.7-2 (/home/racooper/download/ssniper-0.9.7-2/_darcs/inventory: openBinaryFile: does not exist (No such file or directory))
make: *** [tarball] Error 2
如果有人有 SSNiper 的经验,或者可以针对我的上述问题提出解决方案,我将非常感激。
答案1
达尔克斯是一个版本控制系统,不如 CVS、Subversion、Git、Mercurial 或 Bazaar 知名。tarball
makefile 中的目标通过从存储库中提取文件来构建源存档,并从 Darcs 历史记录中生成变更日志。
如果您使用现有源,请创建一个具有所需名称 ( ) 的 tarball并创建一个名为(使用命令)ssniper-0.9.7-2.tar.gz
的空文件,以防止目标运行命令。tarball
touch tarball
tarball
如果您修改了源代码,请tarball
在 中编辑目标Makefile.in
:将 darcs 的调用替换为获得干净源代码存档所需的内容(git archive
、hg archive
或您的修订控制系统提供的任何内容)。修改后./configure
再次运行以重新生成。Makefile
Makefile.in
答案2
感谢 Ulrich Dangel 的评论,我发现我可以完全删除从 rpm 到 tarball 的所有调用,然后对其进行编译。我还发现 makefile 和 .spec 文件中还存在其他错误(例如看起来重复的行,并假设是 32 位平台)。
也感谢 Gilles 为我提供了有关 darcs 和解析 makefile 的一些知识。