![为什么在 Wine 下使用 eMule 下载时会失败,并显示“磁盘空间不足”,即使有?](https://linux22.com/image/1703671/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20Wine%20%E4%B8%8B%E4%BD%BF%E7%94%A8%20eMule%20%E4%B8%8B%E8%BD%BD%E6%97%B6%E4%BC%9A%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%9C%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3%E2%80%9D%EF%BC%8C%E5%8D%B3%E4%BD%BF%E6%9C%89%EF%BC%9F.png)
我在 Wine 下使用 eMule 0.70a,在基于 Debian 的 Docker 容器上。一些下载结束后,下载栏会变成绿色和黑色条纹,状态显示“磁盘空间不足”,下载的文件不会移动到“传入”文件夹,或者为该下载选择了类别的目标文件夹。
此外,日志(在服务器选项卡中)将显示“移动时出现文件系统错误下载的文件名“。我非常肯定目标位置有磁盘空间。我该如何解决呢?
答案1
Wine 上的 eMule 需要 UTF-8 设置语言环境才能使下载后移动文件正常工作。否则,就会出现此问题。为了确认这是您的问题,您会注意到,当下载的文件名仅包含 ASCII 字符时,不会发生此问题。
您还可以通过发出以下命令来确认您没有设置 UTF-8 语言环境locale
。在 Docker 中,对于基于 Debian 的镜像,它返回POSIX对于大多数 LC_ 项,当它未设置时,将无法使用 UTF-8。解决方法是全局设置 UTF-8,或在 eMule 启动时设置。要生成语言环境(例如 en_US),请在创建图像时或在入口点运行此命令:
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen && \
echo "LANG=en_US.UTF-8" > /etc/default/locale
然后在创建图像时使用以下命令全局设置语言环境:
ENV LC_ALL="en_US.UTF-8"
或者在 eMule 启动时使用:
LC_ALL=en_US.UTF-8 wine ~/.wine/drive_c/Program\ Files/eMule/emule.exe
此问题不太可能发生在桌面安装中,因为桌面安装可能已经具有正确设置的区域设置。在桌面安装中,更简单的解决方案是运行dpkg-reconfigure locales
。