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

参考资料

相关推荐
xingfujie4 小时前
运维实战攻略
运维
HHFQ4 小时前
在 systemd 场景下的 CPU 限制方式
linux
道清茗4 小时前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
山羊硬件Time5 小时前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
Flying pigs~~5 小时前
RAG智慧问答项目
数据库·人工智能·缓存·微调·知识库·rag
北方的流星5 小时前
华三路由器NAT配置
运维·网络·华三
wj3055853785 小时前
Codex + Git 开发环境配置指南(WSL版)
linux·运维·git
misL NITL6 小时前
mysql之如何获知版本
数据库·mysql
许彰午6 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
星马梦缘6 小时前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu