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

参考资料

相关推荐
AOwhisky10 分钟前
Linux逻辑卷管理:从“固定隔间”到“弹性存储池”的智慧
linux·运维·服务器
QQ_4376643141 小时前
Redis协议与异步方式
数据库·redis·bootstrap
05大叔1 小时前
大事件Day02
运维·服务器
纪莫1 小时前
技术面:MySQL篇(InnoDB事务执行过程、事务隔离级别、事务并发异常)
数据库·java面试⑧股
Nerd Nirvana1 小时前
数据库模型全景:从原理到实践的系统性指南
数据库·oracle·电力行业
SelectDB1 小时前
从 Greenplum 到 Doris:集群缩减 2/3、年省数百万,度小满构建超大规模数据分析平台经验
数据库·数据分析·apache
alonewolf_991 小时前
MySQL索引优化实战二:分页、关联查询与Count优化深度解析
数据库·mysql
C Yu小白2 小时前
Linux系统调用与文件操作详解
linux·运维·服务器
ZFB00012 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——常见用户组简介
linux·运维·kylin
acrelgxy2 小时前
告别被动抢修与盲目巡检!安科瑞运维云平台,让电力系统实现预测性守护。
运维·电力监控系统·智能电力仪表