Mime-Types

XDG_DATA_DIRS 包含重複路徑;怎麼修?

  • August 28, 2020

我正在執行 Arch Linux 和 KDE,並且很想了解 mime 類型文件關聯。

在調查我的系統時,我注意到了這個問題:

$ echo $XDG_DATA_DIRS
/usr/share:/usr/share:/usr/local/share

請注意,路徑/usr/share是重複的。我想知道如何解決它以及如何解決它。

此外,我的系統沒有/usr/local/share/applications/ 可以從環境變數中刪除該路徑$XDG_DATA_DIRS嗎?如果是這樣,怎麼做?

我認為最終的結果應該是:

$ echo $XDG_DATA_DIRS
/usr/share

這是一些故障排除資訊。以 root 身份執行時,我看不到這些路徑。這不會產生標準輸出:

# echo $XDG_DATA_DIRS

在我機器上的普通使用者帳戶中,以下命令不產生標準輸出並且返回值1

$ grep -r XDG_DATA_DIRS /etc/profile.d/

除了二進製文件 places.sqlite(在 Firefox 配置文件中)之外,此搜尋找不到匹配項:

find /home/myuser -mount -type f -exec grep -r XDG_DATA_DIRS= {} +

這也不會產生標準輸出:

grep -r XDG_DATA_DIRS /etc/

到目前為止,我發現的唯一匹配是:

# grep -r XDG_DATA_DIRS= /usr
/usr/share/ECM/kde-modules/prefix.sh.cmake:export XDG_DATA_DIRS=@KDE_INSTALL_FULL_DATADIR@:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}

所以…

pacman -F /usr/share/ECM/kde-modules/prefix.sh.cmake
usr/share/ECM/kde-modules/prefix.sh.cmake is owned by extra/extra-cmake-modules 5.66.0-1

Arch Linux - extra-cmake-modules 5.66.0-1 (any) https://www.archlinux.org/packages/extra/any/extra-cmake-modules/

我希望這個包不負責搞砸我的 mime 類型關聯……

在另一台設備上全新安裝 Arch 的新使用者帳戶中,以下三個命令不會產生標準輸出:

echo $XDG_DATA_DIRS
grep -r XDG_DATA_DIRS /etc/profile.d/
grep -r XDG_DATA_DIRS= /usr

此外,我的系統沒有 /usr/local/share/applications/ 可以從 $XDG_DATA_DIRS 環境變數中刪除該路徑嗎

/usr/local/share/applications不在$XDG_DATA_DIRS您粘貼的值中,因此無需刪除不存在的值

如果你 grep -r XDG_DATA_DIRS /usr

你會看到很多 XDG_DATA_DIRS。

我希望這個包不負責搞砸我的 mime 類型關聯……

不,它不會搞砸任何事情。它也只搜尋那些目錄

在另一台設備上全新安裝 Arch 的新使用者帳戶中,以下三個命令不會產生標準輸出

確切地說,您在不同的系統中得到不同的值。正是您安裝的那些包和為該特定使用者定義的環境變數,它們將定義將要搜尋數據文件的目錄。如果相同的值被定義兩次,那麼它將顯示兩次。擁有它並沒有什麼奇怪的,因為有時包不協調在一起。grep /usr//opt並且$HOME您肯定會在某個地方找到罪魁禍首。如果沒有grep /;)

引用自:https://unix.stackexchange.com/questions/564003