You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动