准备删Qt4,来了个mv /usr/lib64 /usr/lib64.xxx
然后/usr/bin/ls: 无法执行:找不到需要的文件
mv也是如此,360浏览器也是如此。
export LD_LIBRARY_PATH=/usr/lib64 没用。
在手机上问AI,说sln是静态链接命令,不依赖动态库。
手颤抖着输入了:/usr/sbin/sln /usr/lib64.xxx /usr/lib64
bash: /usr/sbin/sln: 没有那个文件或目录
然后:/usr/lib64.xxx# ./ld-linux-x86-64.so.2 --library-path /usr/lib64.xxx /bin/mv /usr/lib64.xxx /usr/lib64
先看看咋回事:
/usr/lib64# l 总计 3.4M lrwxrwxrwx 1 root root 42 8月26日 03:11 ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 25 11月19日 23:19 libQtDeclarative.so.4 -> libQtDeclarative.so.4.8.7 lrwxrwxrwx 1 root root 25 11月19日 23:19 libQtDeclarative.so.4.8 -> libQtDeclarative.so.4.8.7 -rw-r--r-- 1 root root 3.3M 2023年12月 7日 libQtDeclarative.so.4.8.7 drwxr-xr-x 6 root root 4.0K 11月19日 23:28 qt4
然后sln这个程序有manpage,但debian的package search里找不到哪个包里有它。
apt source coreutils 折腾了会没有静态编译成。
嗨:
#include <unistd.h> int main (int argc, char** argv) {if (argc != 3) return 1;symlink(argv[1], argv[2]); }
gcc -static -Os再strip, 667K,留着备用。
man 2 link或man 2 symlink