
我在一所重點大學工作,我們有一項政策,要求每年掃描所有電腦的社會安全號碼 (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 的一些知識。