“哪个”命令是否总是显示正确的文件/哪个二进制文件正在真正运行?

“哪个”命令是否总是显示正确的文件/哪个二进制文件正在真正运行?

我正在使用 Ubuntu 12.04 LTS,显然我的系统被各种版本的表里不一安装:

  • 首先我从默认仓库安装了 0.6.18,
  • 然后我尝试使用 0.6.23电力购买协议
  • 最后我从源代码构建了 0.6.24 并安装了它

(我列出这个是为了完整性,但我并不认为这是duplicity特定的。)

现在我的系统表现如下:

root@host:~# duplicity -V
duplicity 0.6.24

root@host:~# which -a duplicity
/usr/bin/duplicity

root@host:~# /usr/bin/duplicity -V
duplicity 0.6.24

root@host:~# head /usr/bin/duplicity
#!/usr/bin/python2.7
# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
#
# duplicity -- Encrypted bandwidth efficient backup
# Version 0.6.23 released $reldate
#
# Copyright 2002 Ben Escoto <[email protected]>
# Copyright 2007 Kenneth Loafman <[email protected]>
#
# This file is part of duplicity.

???

Ubuntu 中是否使用了某种二进制缓存?

更新

root@host:~$ cat /usr/bin/duplicity | grep 24
            return 128 * 1024
    if maxopen < 1024:
        log.FatalError(_("Max open files of %s is too low, should be >= 1024.\n"
                         "Use 'ulimit -n 1024' or higher to correct.\n") % (maxopen,),
root@host:~$ cat /usr/bin/duplicity | grep 23
# Version 0.6.23 released $reldate
log.Log(u"duplicity 0.6.23 ($reldate)", verbosity)

答案1

注释通常与代码不同步。您可以grep -F '0.6.24' /usr/bin/duplicity检查一下。如果没有结果,则可能是版本字符串存储在多个变量中,因此您可能需要搜索2324

据我所知,没有发行版有可执行文件缓存。我预计安全隐患会很严重。

相关内容