对此我有点陌生,所以如果我有错误的概念,请告诉我。
我正在尝试打包JohnTheRipper的更新版本。我需要在Docker上运行该程序,直到现在我的所有尝试都失败了。简单地将文件复制过来是行不通的,因为它会寻找一些链接的库。只有在我先将文件复制完然后将所需的.so
文件复制到var/usr/lib
文件夹中的目标之后,该功能才能起作用。
我想让这个过程不那么尴尬。因此,我认为最好的方法是编辑JohnTheRipper Makefile
以编译包含所需库等的john
二进制文件,因此除了可执行文件本身之外,它不需要任何东西。我环顾四周,尝试在-static
中简单地添加Makefile
标志,但这会导致编译失败。所以我想这不是那么简单。我在此处添加了JohnTheRipper
Makefile
中与我相关的部分(文件太大,无法在此处复制)。最好的编译方法是什么,以便我可以简单地将二进制文件复制到任何Linux系统,而不会丢失.so
引用等?
谢谢!
Makefile
(这是我添加-static
标志的位置...):
../run/john: $(JOHN_OBJS) aes/aes.a secp256k1/secp256k1.a ed25519-donna/ed25519-donna.a
$(LD) $(JOHN_OBJS) $(LDFLAGS) -lssl -lcrypto -fopenmp -lgmp -lrexgen -lOpenCL -lm -pthread -lm -lz -ldl -lcrypt -lbz2 aes/aes.a secp256k1/secp256k1.a ed25519-donna/ed25519-donna.a -o $@