【问题标题】:How to static compile ps(procps)如何静态编译 ps(procps)
【发布时间】:2018-09-20 09:34:23
【问题描述】:

出于取证原因,我想在 Centos 上编译一些基本工具,如 cat、grep、vi、find、md5sum、dir..等。在取证时检查进程列表非常重要。所以我尝试编译 ps (procps)静态地。我确实失败了。 以下是我尝试的步骤:

git clone https://gitlab.com/procps-ng/procps.git
cd procps
./autogen.sh
./configure LDFLAGS="-static"

make SHARED=0 CC='gcc -static'

还搜索了很多帖子并尝试过:

./configure LDFLAGS="-all-static"
./configure --enable-static --disable-shared
make SHARED=0 CC='gcc -static'  
make -e LDFLAGS=-all-static
export LDFLAGS="-static -Wl,--no-export-dynamic"
make -e LDFLAGS=-all-static
make sense CC="gcc -static"

将这些配置与make结合起来,这些都不起作用,有些编译失败,有些编译成功,但是当我用ldd pscommands检查它时,它显示了

[root@localhost ps]# ldd pscommand
        linux-vdso.so.1 =>  (0x00007ffca9bc2000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f3b078cd000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f3b07500000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3b07ad1000)

procps 是否对这些非静态库有一些深度依赖?

【问题讨论】:

  • 为什么不用busybox? (注意:存在很多内核后门。)

标签: c linux makefile compilation static


【解决方案1】:

刚刚为procps-ng-3.3.16编译(现在最新),试试:

./configure \
    --disable-shared \
    LDFLAGS=--static

【讨论】:

    【解决方案2】:

    您可能需要安装 glibc-static。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2011-05-06
      • 2021-11-23
      • 1970-01-01
      相关资源
      最近更新 更多