记录安装pdsh中 Linux 系统根目录空间不足导致的编译安装问题

解决 Linux 系统根目录空间不足导致的编译安装问题

问题描述

在 Ubuntu 系统上编译安装 pdsh-2.29 时,由于根目录空间不足,导致 configure 过程中出现以下错误:

bash 复制代码
./configure: line 1197: cannot create temp file for here-document: No space left on device

系统状态:

bash 复制代码
# 根目录已满
/dev/mapper/ubuntu--vg-ubuntu--lv  878G  834G     0 100% /

# 其他数据盘还有空间
/dev/sdc1                          3.6T  2.0T  1.5T  58% /data1

解决方案

1. 设置临时文件目录

首先将临时文件目录转移到有足够空间的数据盘:

bash 复制代码
# 创建新的临时文件目录
mkdir -p /data1/home/qwen/tmp

# 将环境变量写入 .bashrc
echo 'export TMPDIR=/data1/home/qwen/tmp' >> ~/.bashrc

# 使配置生效
source ~/.bashrc

2. 下载和编译安装

bash 复制代码
# 下载源码
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pdsh/pdsh-2.29.tar.bz2

# 解压
tar -xvf pdsh-2.29.tar.bz2
cd pdsh-2.29

# 配置(指定安装路径)
./configure --prefix=/data1/home/qwen/pdsh-install --with-ssh --without-rsh --with-exec --with-timeout=60 --with-nodeupdown --with-rcmd-rank-list=ssh

# 编译和安装
make
make install

3. 设置环境变量

将以下配置添加到 ~/.bashrc:

bash 复制代码
# 添加可执行文件路径
echo 'export PATH=/data1/home/qwen/pdsh-install/bin:$PATH' >> ~/.bashrc

# 添加库文件路径
echo 'export LD_LIBRARY_PATH=/data1/home/qwen/pdsh-install/lib/pdsh:$LD_LIBRARY_PATH' >> ~/.bashrc

# 使配置生效
source ~/.bashrc

4. 修复权限问题

安装后可能遇到模块加载问题:

bash 复制代码
pdsh@mindspore: module path "/data1/home/qwen/pdsh-install/lib/pdsh" insecure.
pdsh@mindspore: "/data1": World writable and sticky bit is not set

解决方法是修改相关目录权限:

bash 复制代码
# 需要 sudo 权限
sudo chmod 755 /data1
sudo chmod 755 /data1/home

# 修改用户目录权限
chmod 755 /data1/home/qwen
chmod 755 /data1/home/qwen/pdsh-install
chmod 755 /data1/home/qwen/pdsh-install/lib
chmod 755 /data1/home/qwen/pdsh-install/lib/pdsh

5. 验证安装

bash 复制代码
pdsh -V

正确输出应该显示:

复制代码
pdsh-2.29
rcmd modules: ssh,exec (default: ssh)
misc modules: (none)

注意事项

  1. 确保 /data1 目录有足够的空间
  2. 需要 sudo 权限来修改部分目录权限
  3. 如果没有 sudo 权限,可以考虑将安装路径改到用户家目录下(比如 ~/.local)

参考资料

相关推荐
java_logo2 分钟前
SGLANG Docker容器化部署指南
linux·运维·docker·容器·eureka·1024程序员节
Qayrup28 分钟前
各个系统的 docker安装
运维·docker·容器
刘一说1 小时前
深入理解 Spring Boot 中的数据库迁移:Flyway 与 Liquibase 实战指南
数据库·spring boot·oracle
敲代码的瓦龙1 小时前
操作系统?进程!!!
linux·c++·操作系统
August_._1 小时前
【MySQL】SQL语法详细总结
java·数据库·后端·sql·mysql·oracle
打不了嗝 ᥬ᭄2 小时前
数据链路层
linux·网络·网络协议·http
piaoxue8202 小时前
MFA MACOS 安装流程
linux·运维·服务器
升鲜宝供应链及收银系统源代码服务2 小时前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
柱子子子子3 小时前
Ubuntu24.04 不能使用todesk 解决办法
运维·服务器
苦学编程的谢3 小时前
Redis_8_List
数据库·redis·缓存