之前我安装了 sumo,并通过在 /etc/environment 中添加 SUMO_HOME='/usr/share/sumo' 来设置环境变量 SUMO_HOME。
现在我已经卸载了 sumo 并且想要取消设置环境变量 SUMO_HOME,我尝试了这个:
- $ 取消设置 SUMO_HOME
- https://askubuntu.com/a/624958/645099
与第二点一样,我打开了这些文件:
/etc/environment
/etc/profile
~/.profile
~/.bashrc
我在这些文件中搜索了 SUMO_HOME。我在 /etc/environment 中找到了它,正如我之前添加的那样,我删除了该行,然后重新启动了系统。
但如果我再次输入:$ echo $SUMO_HOME
我得到输出:/usr/share/sumo
我怎样才能永久取消它的价值?
我的命令和输出:
- 检查 sumo 路径和 SUMO_HOME 环境变量
$ whereis sumo
sumo: /usr/bin/sumo /usr/share/sumo /usr/share/man/man1/sumo.1.gz
$ echo $SUMO_HOME
/usr/share/sumo
- 移除相扑
$sudo apt-get remove sumo
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libmono-addins-gui0.2-cil libmono-addins0.2-cil libmono-posix4.0-cil
libmono-sharpzip4.84-cil libmono-system-core4.0-cil
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
sumo
0 upgraded, 0 newly installed, 1 to remove and 390 not upgraded.
After this operation, 53.0 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 233311 files and directories currently installed.)
Removing sumo (1.3.1+dfsg1-7) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.1) ...
Processing triggers for man-db (2.8.3-2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1) ...
- 再次检查 sumo 路径和 SUMO_HOME 环境变量
$ whereis sumo
sumo: /usr/share/sumo
$echo $SUMO_HOME
/usr/share/sumo
- 取消设置 SUMO_HOME
$ unset SUMO_HOME
$ echo $SUMO_HOME
No outpout
重启系统
再次检查 sumo 路径和 SUMO_HOME 环境变量
$ whereis sumo
sumo: /usr/share/sumo
$echo $SUMO_HOME
/usr/share/sumo
为什么仍然显示相同内容?
答案1
要彻底删除 sumo 包,您需要清除它。
$ apt-get purge sumo
# Or
$ apt-get --purge remove sumo
如果您仅使用apt-get remove
,则某些文件仍会保留在您的系统中,例如配置文件。您可以在 下找到这些文件/var/lib/dpkg/info
。
$ cd /var/lib/dpkg/info && cat sumo.list
/etc
/etc/profile.d
/etc/profile.d/sumo.csh
/etc/profile.d/sumo.sh
(&&
用于创建一系列命令;如果第一个命令运行成功,则下一个命令将运行,依此类推,如果其中一个命令失败,则中止该序列)
如果你已经清除您的软件包,您可以尝试重新安装该软件包并再次清除它,如果问题仍然存在,您可能最终需要手动处理该问题。下载软件包允许您检查其内容或在需要时提取它。
$ mkdir sumo && \
cd sumo && apt-get download sumo
$ dpkg-deb --contents sumo_1.3.1-4_amd64.deb
或者提取:
$ dpkg-deb --extract \
sumo_1.3.1-4_amd64.deb content && ls content
etc usr
$ grep -IRni 'export SUMO'
etc/profile.d/sumo.sh:2:export SUMO_HOME=/usr/share/sumo
(\
用于换行;纯粹是装饰性的)。
如果您仍然无法解决问题,则需要下载源包。(确保已将 deb-src 添加到您的 /etc/apt/sources.list)。
$ mkdir sumo && \
cd sumo && apt-get source sumo && cd sumo-*
$ grep -IRni 'export SUMO'
build/package/sumo.sh:2:export SUMO_HOME=/usr/share/sumo
$ grep -IRni 'build/package/sumo'
debian/sumo.install:1:build/package/sumo.*sh etc/profile.d
因此,导致问题的文件位于 /etc/profile.d 中
$ cd /etc/profile.d && \
rm sumo.*sh
grep 选项:
-I
处理二进制文件,就好像它不包含匹配的数据。-R
递归读取每个目录下的所有文件。-n
在每行输出前面加上以 1 为基础的行号。-i
忽略大小写区别。
答案2
在喝咖啡之前,运行以下命令:
sudo time grep -rnw --exclude-dir={media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e "SUMO_HOME"
它将搜索整个分区,查找SUMO_HOME
所有文件中出现的 。它会忽略其他驱动器/分区(mnt
)和临时系统目录中的文件。
在 HDD 上,该命令将花费最长的时间,但在 SSD 上,如果文件有 20 GB,则需要 3 分钟:
$ sudo time grep -rnw --exclude-dir={media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e "SUMO_HOME"
[sudo] password for rick:
Binary file /home/rick/.mozilla/firefox/9fu0cuql.default/places.sqlite matches
Binary file /home/rick/.mozilla/firefox/9fu0cuql.default/sessionstore-backups/recovery.jsonlz4 matches
Binary file /home/rick/.mozilla/firefox/9fu0cuql.default/sessionstore-backups/recovery.baklz4 matches
Binary file /home/rick/.mozilla/firefox/9fu0cuql.default/places.sqlite-wal matches
Binary file /home/rick/.cache/mozilla/firefox/9fu0cuql.default/cache2/entries/E883FF0A3B2BE2423996DA9A152C6B85AD52385C matches
53.23user 19.36system 2:09.36elapsed 56%CPU (0avgtext+0avgdata 19632maxresident)k
46678523inputs+0outputs (0major+7578minor)pagefaults 0swaps
忽略浏览器中显示的条目,因为这些条目是输入到此问答线程中的。上面的单个条目.cache
并不重要,但您可能还有其他重要的条目。