今天早上,我正在重新编译一个需要测试的 RPM,它是用 CMake 构建的,然后我卸载了旧的,因为旧的缺少了一些东西。卸载旧版本后,我去安装新的,突然我执行的每一个命令都显示“没有这样的文件或目录”。例如,我尝试“ls”并得到/usr/bin/ls: No such file or directory
。
通过一些实验,我发现我仍然可以使用 更改目录cd
,当我转到 时/usr/bin
,这些二进制文件仍然在那里,因为我可以使用制表符自动完成功能列出目录,但即使我在该目录中执行./ls
,它也会显示相同的消息。
我关闭了终端,以为这是一个被盗用的会话,但现在我的终端无法启动。我尝试使用ssh
进行连接,但它拒绝输入我的密码几次,然后说Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
。
我有一个同事在我的计算机上打开了一个会话,他在尝试相同的命令时遇到了相同的错误。他尝试执行一个命令export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
,命令完成了,但什么也没改变。
下一步我该做什么?
答案1
所以答案还是 RPM。二进制文件和库被安装在错误的位置,因为我忘记重构一些 CMakeLists 文件,而这些目录没有包含在CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION列表,所以当 RPM 被删除时,它吹走了/垃圾桶,/lib64, 和/包括目录。
哎呀……