Ubuntu 24.04中如何为右键菜单配置XZ_DEFAULTS环境变量
Ubuntu 24.04中如何为右键菜单配置XZ_DEFAULTS环境变量
我明白你的问题了——你已经在/etc/environment里设置了XZ_DEFAULTS="-C sha256 -T 0 -1",终端里用tar或xz压缩时确实会用SHA-256校验,但通过右键菜单生成的.tar.xz文件还是默认的CRC64,对吧?
这是因为桌面环境的应用(比如Ubuntu默认的Nautilus文件管理器,它的右键压缩功能依赖file-roller归档管理器)并没有继承到/etc/environment里的全局环境变量,或者说启动时没有加载到这个变量。下面给你两种可行的解决办法:
方法一:把XZ_DEFAULTS加到桌面会话的环境配置中
这种方法会让整个桌面会话都加载这个变量,不仅是右键压缩,所有桌面应用调用xz时都会生效:
- 首先创建(如果不存在的话)用户级的环境配置目录:
mkdir -p ~/.config/environment.d/ - 新建一个配置文件
99-xz-defaults.conf:nano ~/.config/environment.d/99-xz-defaults.conf - 在文件里添加一行:
XZ_DEFAULTS="-C sha256 -T 0 -1" - 保存退出后,注销当前用户再重新登录(必须重启会话才能让新的环境变量生效),之后用右键菜单压缩文件,再用
xz -l命令检查,应该就能看到SHA-256校验了。
方法二:直接修改归档管理器的启动命令
如果方法一没生效,或者你只想让右键压缩功能单独生效,可以修改file-roller的启动配置:
- 先把系统默认的
.desktop文件复制到用户目录下(避免修改系统文件,防止系统更新覆盖你的设置):cp /usr/share/applications/org.gnome.FileRoller.desktop ~/.local/share/applications/ - 编辑复制后的文件:
nano ~/.local/share/applications/org.gnome.FileRoller.desktop - 找到以
Exec=开头的行,把它改成:Exec=env XZ_DEFAULTS="-C sha256 -T 0 -1" file-roller %U - 保存退出后,重启Nautilus文件管理器让设置生效:
之后重新打开文件管理器,右键压缩文件再验证即可。nautilus -q
验证方式
不管用哪种方法,压缩完成后执行以下命令检查校验算法:
xz -l your_file.tar.xz
如果输出里的Check列显示SHA-256,就说明配置成功了。
备注:内容来源于stack exchange,提问作者Keelung




