删除它

删除它

今天我从 Ubuntu 16.04 升级到 18.04 再升级到 20.04

登录后我收到错误

在此处输入图片描述

Error found when loading /etc/profile:

/etc/profile.d/modules.sh: line 6: usr/share/modules/init/sh: no such file or dicrectory

As a result the session will not be configured correctly.
You should fix the problem as soon as feasible

中的代码etc/profile.d/modules.sh是:

shell=$(/usr/bin/basename $(/bin/ps -p $$ -ocomm=))

if [ -f /usr/share/modules/init/$shell ]; then
   . /usr/share/modules/init/$shell
else
   . /usr/share/modules/init/sh
fi

路径/usr/share/modules不存在

剧本如何改编?

答案1

我在 VirtualBox 上全新安装了 ubuntu 20.04,并注意到该文件etc/profile.d/modules.sh在全新安装中不存在。

因此我将文件重命名etc/profile.d/modules.shetc/profile.d/modules.sh.ubuntu16.04以免被执行
/etc/profile.d/*.sh其中的模式/etc/profile不再匹配)

此后错误信息不再出现。

答案2

删除它

/etc/profile.d/modules.sh脚本是 Ubuntu LTS 以前版本的残留。可以安全删除。

$ sudo rm /etc/profile.d/modules.sh

这样做之后,错误信息将不再出现。

答案3

在我的系统上,使用

dpkg -S /etc/profile.d/modules.sh

表明文件/etc/profile.d/modules.sh属于易于包裹environment-modules

使用命令显示依赖关系environment-modules, 例如

apt-cache rdepends --installed environment-modules
apt -s remove environment-modules
aptitude why environment-modules

表明environment-modules实际上其他软件包并不需要它,甚至也没有(完全)安装在我的系统上。

使用命令显示历史 apt 包日志数据, 例如

ls -rt /var/log/dpkg.log* | xargs zgrep install | less
ls -rt /var/log/dpkg.log* | xargs zgrep install | grep environment-modules

显示,从environment-modules最近提及的所有日志条目来看,environment-modules仅“安装了一半”。

事实上,使用dpkg -l | grep ^rc(见12environment-modules)表明apt-删除但尚未完全apt-清除

environment-modules因此,我得出结论,使用以下方法删除并清除包是安全的

apt remove environment-modules
apt purge environment-modules

这次清除确实/etc/profile.d/modules.sh从我的系统中删除了文件。从那时起,我就摆脱了上述错误消息。

相关内容