如何使.list文件修改永久生效?解决google-earth.list自动重置问题
永久解决Google Earth源自动覆盖导致
[arch=amd64]丢失的问题 我之前也碰到过一模一样的情况,Google Earth的源文件总会被包管理系统自动重置,手动加上的[arch=amd64]总是莫名其妙消失。下面几个方法亲测有效,你可以根据自己的需求选择:
方法1:通过debconf配置让源自动包含arch参数
Google Earth的源配置其实是通过debconf数据库管理的,我们可以直接修改对应的配置项,让它生成源时自动带上[arch=amd64]:
- 先查看当前的源配置值:
你会看到类似debconf-show google-earth-stablegoogle-earth-stable/repository: http://dl.google.com/linux/earth/deb/ stable main的条目。 - 修改这个配置值,添加
[arch=amd64]:echo "google-earth-stable/repository string [arch=amd64] http://dl.google.com/linux/earth/deb/ stable main" | sudo debconf-set-selections - 重新触发源文件生成:
现在再查看sudo dpkg-reconfigure -f noninteractive google-earth-stable/etc/apt/sources.list.d/google-earth.list,里面应该已经自动包含[arch=amd64]了,而且以后包更新时也会用这个配置生成源,不会丢失。
方法2:锁定源文件防止被修改
如果你不想折腾debconf,最简单粗暴的方式是把源文件设为不可修改:
- 先修改好
google-earth.list,确保里面有[arch=amd64]字段。 - 执行命令锁定文件:
这样任何程序都无法修改这个文件了,包括Google Earth的包更新脚本。sudo chattr +i /etc/apt/sources.list.d/google-earth.list- 缺点:如果以后Google官方更新源地址或者需要调整源配置,你得先解锁文件(
sudo chattr -i 文件名)才能修改,不然包更新可能会报错。
- 缺点:如果以后Google官方更新源地址或者需要调整源配置,你得先解锁文件(
方法3:创建自定义源文件替代自动生成的
另一种稳妥的方式是自己建一个独立的源文件,绕过自动生成的那个:
- 先把原来的
google-earth.list重命名或者注释掉所有内容:sudo mv /etc/apt/sources.list.d/google-earth.list /etc/apt/sources.list.d/google-earth.list.bak - 创建新的
/etc/apt/sources.list.d/google-earth-custom.list文件,内容如下:[arch=amd64] http://dl.google.com/linux/earth/deb/ stable main - 更新apt缓存验证:
这个自定义文件不会被Google Earth的包脚本修改,因为它只关注自己生成的那个文件名。不过要注意,以后如果卸载Google Earth包,这个自定义文件不会被自动删除,需要手动清理。sudo apt-get update
我个人推荐方法1,因为它最符合系统的包管理逻辑,既保证了配置不丢失,又不影响后续的包更新操作。
内容的提问来源于stack exchange,提问作者Andyc
相关产品推荐
相关产品推荐

