记录安装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)

参考资料

相关推荐
大神的风范几秒前
从0开始学linux韦东山教程第三章问题小结(4)
linux·服务器
sz66cm15 分钟前
Linux基础 -- SSH 流式烧录与压缩传输笔记
linux·笔记·ssh
YOYO--小天39 分钟前
RS485和RS232 通信配置
linux·嵌入式硬件
大蚂蚁2号1 小时前
windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
运维·服务器·网络
Lw老王要学习1 小时前
Linux数据库篇、第一章_02_MySQL的使用增删改查
linux·运维·数据库·mysql·云计算·it
林下清风~1 小时前
MySQL——九、锁
数据库·mysql
斤斤计较1 小时前
Docker 环境安装(2025最新版)
运维·docker·容器
小锋学长生活大爆炸2 小时前
【教程】Docker方式本地部署Overleaf
运维·docker·容器
xiaoyaoyou.xyz2 小时前
嵌入式Linux Qt开发:1、搭建基于ubuntu18.04的Qt开发环境及测试(解决Qt creator输入法问题)
linux·qt
Toky Zhu2 小时前
ubuntu清除缓存
linux·ubuntu·缓存