pip installでOSError(28, ‘No space left on device’)が発生
TerraformでEC2のAmazonLinuxにPython環境を構築している時にpip installがエラー終了したのでその原因と解決方法を調べました。
エラー内容
Downloading torch-2.6.0-cp39-cp39-manylinux1_x86_64.whl (766.7 MB)
248.8/766.7 MB 63.2 MB/s eta 0:00:09
OSError: [Errno 28] No space left on device
pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))
tmpフォルダの容量不足
EC2自体のディスク容量には余裕があったのですが、pip installの場合、tmpフォルダを使用するため、tmpフォルダの容量が不足していたためエラーになっていました。
df -h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 475M 0 475M 0% /tmp
tmpフォルダの容量変更
# Amazon Linux3のAMIベースにt2.microのEC2を作成
resource "aws_instance" "xxx-server" {
ami = "ami-0dfa284c9d7b2adad" # Amazon Linux3
instance_type = "t2.micro"
tags = { Name = "xxx-Instance" }
# インスタンス起動時に実行するユーザーデータスクリプト
user_data = <<-EOF
#!/bin/bash -x
# /tmpのサイズを2Gに設定(pip installでの容量不足エラー対策)
echo "tmpfs /tmp tmpfs defaults,size=2G 0 0" >> /etc/fstab
# /tmpを再マウント
mount -o remount /tmp
EOF
}
コメント