1
1
我不知道这些特定的系统是如何工作的,但是…
我突然想到,包管理器需要将包访问数据库保存在内存中,以确保在内存中不存在竞争条件。同样,CHROOT监狱和拷贝选项是一种低风险的替代方案。 |
2
0
就像很多事情一样,你不需要专门“设计”来解决这个问题…但你需要知道某些“陷阱”。 例如,Unix通过引用计数inode来帮助“您”删除您仍在使用的文件,这很好。然而,这意味着你必须做一些事情,例如,如果你有插件,那么你需要将它们全部加载。 之前 您还需要做一些事情来确保正在更新的任何内容都能正常工作,例如:在删除旧文件之前放下新文件。不要截断旧文件,只需取消链接。但这些也有助于你:)。 使用与您通信的外部问题可能很棘手(因为在旧版本更新后无法执行新版本)。但这并不是经常做的,当它是下载之类的事情时…这在任何更新之前都可以很容易地实现。 在命令行客户机(如yum/apt)中也有一些事情不值得关注,例如,如果您有一个程序要运行2+“更新”,那么如果第一次更新是包管理器,则可能会出现问题。降级使这变得更有趣:)。 此外,类似守护进程的进程基本上不应该“加载”包管理器,但与其他gotchas一样…不管怎样,出于其他原因,你倾向于遵循这一点。 |
Justin · ubuntu老谋深算的消息来源去了哪里? 7 年前 |