安装第三方库到指定目录出现问题
- Install configuration: "" -- Up-to-date: /home/nvidia/CSF/install/lib/libCSF.a -- Up-to-date: /home/nvidia/CSF/install/lib/libCSF.a -- Up-to-date: /home/nvidia/CSF/install/include/c2cdist.h -- Up-to-date: /home/nvidia/CSF/install/include/Cloth.h -- Up-to-date: /home/nvidia/CSF/install/include/Constraint.h -- Up-to-date: /home/nvidia/CSF/install/include/CSF.h -- Up-to-date: /home/nvidia/CSF/install/include/Particle.h -- Up-to-date: /home/nvidia/CSF/install/include/point_cloud.h -- Up-to-date: /home/nvidia/CSF/install/include/Rasterization.h -- Up-to-date: /home/nvidia/CSF/install/include/Vec3.h -- Up-to-date: /home/nvidia/CSF/install/include/XYZReader.h CMake Error at cmake_install.cmake:59 (file): file failed to open for writing (Permission denied): /home/nvidia/CSF/build/install_manifest.txt
从你的输出来看,安装过程似乎在尝试更新文件 /home/nvidia/CSF/build/install_manifest.txt
时遇到了权限问题。这个文件通常用于记录安装过程中创建或更新的文件列表,以便于后续的卸载或其他操作。
即使你之前设置了自定义的 CMAKE_INSTALL_PREFIX
(如 /home/nvidia/CSF/install
),install_manifest.txt
仍然会被写入构建目录(在这个例子中是 /home/nvidia/CSF/build
)。如果你对构建目录没有写权限,就会遇到 "Permission denied" 错误。
解决方案
# 进入构建目录
cd /home/nvidia/CSF/build
# 确保你拥有该目录及其内容的所有权
sudo chown -R $USER:$USER .
# 或者直接赋予写权限(如果所有权已经是你的)
chmod u+w .
使用 sudo make install
来解决权限问题通常是可行的,但在这个特定情况下可能并不是最佳选择。从你的输出来看,安装路径(如 /home/nvidia/CSF/install/
)和构建目录(如 /home/nvidia/CSF/build/
)都在你的家目录下,理论上你应该对这些位置拥有完全的读写权限,因此不应该需要使用 sudo
。
为什么不应该使用 sudo make install
- 权限提升风险:使用
sudo
提升权限意味着将以 root 用户的身份执行命令。这不仅会授予对目标安装路径的写权限,还会授予对构建过程中的所有文件和操作的最高权限,这可能会带来安全风险。 - 文件所有权变化:用
sudo
安装后,生成的文件将由 root 用户拥有,这可能会导致后续你以普通用户身份尝试修改或删除这些文件时遇到权限问题。 - 不必要的复杂性:既然你已经设置了自定义的安装路径,并且这个路径在你的家目录下,应该不需要额外的权限提升。
原文地址:https://blog.csdn.net/qq_39003748/article/details/145287017
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!