请问pacman是如何升级的呢
时间:2010-04-28
来源:互联网
我有几个问题想询问下:
1. 为什么在Archlinux下,正在运行的应用也会被升级呢?运行的版本是旧版本,升级完后,关闭该应用再启动就是新版本了。难道Linux将正在运行的应用完全加载到内存,而且该文件可被改写?(经过一些小测试,发现正在运行的文件,可以被删除、改写)
2. Archlinux升级是如何处理用户数据的呢?会不会出现升级到新版本后,数据不兼容的问题呢?
如何将旧版本的用户数据导入到新版本的用户数据文件中呢?
作者: anderlew 发布时间: 2010-04-28
2. 有时会有 .pacnew, .pacold 文件产生,以此保存新的配置文件或备份旧的配置文件
作者: bearson 发布时间: 2010-04-28
作者: bearson
1. 你自己已经试出来了,这归功于Linux的文件系统
2. 有时会有 .pacnew, .pacold 文件产生,以此保存新的配置文件或备份旧的配置文件 |
1. 我只是测试了几个基本程序,要是将完整的KDE或是Gnome程序完整加载到内存,这个内存开销不少吧。如果假设是这样的,那它也应该将依赖的动态库全加载到内存吧?内存开销更不少了。
如果是在播放高清影片,影片的大小已超过了内存大小,它也完全加载到内存?
2. 如果是新程序更新了配置文件的结构,那就是它使用的是somefile.pacnew的文件喽?它同时会读两份配置文件?原始的somefile和somefile.pacnew?
作者: anderlew 发布时间: 2010-04-28
作者: anderlew
谢谢你的解答,这些问题有些牵扯到程序设计的角度了,我该看看pacman的源码。
1. 我只是测试了几个基本程序,要是将完整的KDE或是Gnome程序完整加载到内存,这个内存开销不少吧。如果假设是这样的,那它也应该将依赖的动态库全加载到内存吧?内存开销更不少了。 如果是在播放高清影片,影片的大小已超过了内存大小,它也完全加载到内存? 2. 如果是新程序更新了配置文件的结构,那就是它使用的是somefile.pacnew的文件喽?它同时会读两份配置文件?原始的somefile和somefile.pacnew? |
2.不是,一般情况下,新的配置的样例文件被作为.pacnew放进来,用途是让你比较并修改现有配置。只有极个别情况,新的配置格式和旧的不兼容,这时候会把旧的配置重命名为.pacold,然后使用新的配置。无论如何,做这两种改变的时候,pacman都会给出提示。
作者: bearson 发布时间: 2010-04-29
你看pacman的源代码是没有用的,这是跟Linux内核和文件系统有关。
*.pacnew是这个软件的系统配置文件,bearson比较说了。~/.*才是个人配置文件,当新软个人配置文件的结构发生变化时新软件可以更新、修改、原来的个人配置文件,也可以重新创建。
另外不单止archlinux是这样的,据我所知现在所有的unix架构都是这样的。
至于Linux将哪些文件加入到内存我还不太清楚,希望高手解答。
作者: tocai 发布时间: 2010-04-29
1. 基本上理解了,文件系统有这个机制后,确实挺方便的。但是在有限的磁盘空间中(如嵌入式设备)加入这样的功能,分区的空间最少要是这个文件的两倍,在一些极限情况下就易出错了。
2. 看了看官方的pacman使用手册,基本了解了它如何工作的了。在某些情况下,仍然需要人工处理配置文件,将新配置文件中的数据导入到旧的配置文件中。好在linux的大部分数据文件都是ascii character,如果有数据库或是类似的东西保存数据,更新起来就有些麻烦了。
请问pacman database文件在哪里呢?拿现在pacman最新的版本来说吧,以前存在什么db文件内,现在没有看到了。
我最近做了一个系统升级的工具,在更新时处理用户数据时比较头痛,用户数据有在配置文件和数据库中。平时又在用Archlinux,所以对它如何处理用户数据有点感兴起。
作者: anderlew 发布时间: 2010-04-29
作者: anderlew
谢谢大家的解答。
1. 基本上理解了,文件系统有这个机制后,确实挺方便的。但是在有限的磁盘空间中(如嵌入式设备)加入这样的功能,分区的空间最少要是这个文件的两倍,在一些极限情况下就易出错了。 2. 看了看官方的pacman使用手册,基本了解了它如何工作的了。在某些情况下,仍然需要人工处理配置文件,将新配置文件中的数据导入到旧的配置文件中。好在linux的大部分数据文件都是ascii character,如果有数据库或是类似的东西保存数据,更新起来就有些麻烦了。 请问pacman database文件在哪里呢?拿现在pacman最新的版本来说吧,以前存在什么db文件内,现在没有看到了。 我最近做了一个系统升级的工具,在更新时处理用户数据时比较头痛,用户数据有在配置文件和数据库中。平时又在用Archlinux,所以对它如何处理用户数据有点感兴起。 |
就像 Office 2010 需要兼容以前版本的 Office 文档,而不是在升级的时候把本机所有的 Office 文档都升级到新版本。
配置文件是用数据库存的情况实在非常罕见。sqlite 之类的数据库也是向下兼容的。
从 man pacman 中看到数据库默认在 /var/lib/pacman/,当然其实是使用文件系统了,这个地方用reiserfs会快一些……
作者: bearson 发布时间: 2010-04-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28