我正在我的机器上安装 NFS 文件系统。如何确定服务器使用的 NFS 协议版本?我无权访问 NFS 服务器机器,但我的客户端机器上有 root 用户。
有什么我可以在我的客户端机器上运行的东西来识别服务器正在使用什么版本的 NFS 协议,或者它支持什么版本?
我无法在/var/log/messages内核调试输出 ( dmesg) 中找到任何有用的信息。
我试过 running nfsstat,但我不确定它是否给了我任何有用的信息。但是,当我运行nfsstat -s请求有关服务器的信息时,我看不到任何有用的信息:
# nfsstat -s
Server rpc stats:
calls badcalls badfmt badauth badclnt
0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
当我运行nfsstat -c请求有关客户端的信息时,我确实看到了一些有关 的信息Client nfs v3,但我不确定如何解释它。这是否告诉我有关客户端计算机和 NFS 服务器之间使用的协议的任何信息?这是否意味着我目前使用的是 NFS 协议的 v3?它是否告诉我有关服务器支持的 NFS 协议版本(例如 NFS v4)的任何信息?
如何从 ksh 脚本中安全地获取 ksh 版本?
我已经看到以下解决方案:
ksh --versionecho ${.sh.version}echo $KSH_VERSION并且在适当的情况下,每一个都可以正常工作。但是,我关心不完美的情况。
具体来说,我使用的几台机器都有旧版本的 ksh,就我而言,这些机器严重缺乏功能。无论如何,我想(以编程方式)检查版本的原因是查看 ksh 版本是否是功能较弱的版本之一;如果是这样,我想用不那么棒的代码执行一个分支。
然而,在有问题的机器上,shell 的无能扩展到检查版本......
ksh --version,它不会打印任何内容并打开ksh!如果我尝试echo ${.sh.version},ksh则将其视为不能用2> /dev/null.
$ echo ${.sh.version} 2> /dev/null
ksh: ${.sh.version}: bad substitution
Run Code Online (Sandbox Code Playgroud)当然echo $KSH_VERSION看起来工作正常——我的意思是它不会崩溃——尽管在这些机器上它是空白的。另外,我看到的地方是KSH_VERSION只被设定pdksh。
问题:
ksh编程方式安全地检查版本?出于我的目的,我并不真正关心实际的版本号是什么,只关心它是否是ksh.$KSH_VERSION足够好?我的意思是如果它是空白的,那么ksh一定是过时的版本吗?其他论坛是否正确,即使对于较新版本的ksh.当我访问 kernel.org 网站下载最新的 Linux 内核时,我注意到2.6.37-rc5存储库中有一个包。末尾的“rc5”是什么意思?
我想弄清楚sed我在 BusyBox 1.18.3 上有哪个版本。该--version输出是神秘的。
$ sed --version
This is not GNU sed version 4.0
Run Code Online (Sandbox Code Playgroud)
以下代码来自相关sed.c.
/* Lie to autoconf when it starts asking stupid questions. */
if (argv[1] && !strcmp(argv[1], "--version")) {
puts("This is not GNU sed version 4.0");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是标题:
/*
* sed.c - very minimalist version of sed
*
* Copyright (C) 1999,2000,2001 by Lineo, inc. and Mark Whitley
* Copyright (C) 1999,2000,2001 by Mark Whitley <markw@codepoet.org>
* Copyright (C) …Run Code Online (Sandbox Code Playgroud) 通常情况下,某个程序将依赖于库版本 xy 而另一个依赖于 xz 但据我所知,没有包管理器允许我同时安装 xy 和 xz 有时它们会允许两个主要版本(例如qt4 和 qt5,可以同时安装),但(貌似)从来没有小版本。
为什么是这样?比如,阻止它的限制因素是什么?我认为不允许这种看似有用的功能一定有充分的理由。例如,在加载共享对象时,是否没有字段指示加载哪个版本,因此 Linux 无法知道如何决定加载哪个版本?还是真的没有理由?就像所有次要版本都应该是兼容的一样吗?
有人告诉我,我们最近创建了一个新的 Amazon Linux 实例,其中包含最新最好的(版本 2017.3-01)。我正在尝试确定它是否基于 CentOS 7(因为这是唯一支持安装 Google Chrome 的版本)。我跑了
[davea@mymachine ~]$ uname -a
Linux mymachine 4.9.32-15.41.amzn1.x86_64 #1 SMP Thu Jun 22 06:20:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
但我仍然无法确定我的 Amazon Linux 发行版基于哪个版本的 CentOS。
编辑:根据给出的建议,这里是 cat 命令的输出
[davea@mymachine ~]$ sudo cat /etc/*release*
[sudo] password for davea:
NAME="Amazon Linux AMI"
VERSION="2017.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2017.03"
PRETTY_NAME="Amazon Linux AMI 2017.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2017.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2017.03
cpe:/o:amazon:linux:2017.03:ga
Run Code Online (Sandbox Code Playgroud) RHEL 基于 Fedora,反之亦然。当前或未来的 Fedora将是未来RHEL的基础,而当前版本的 RHEL 是基于较旧的Fedora,它具有更长期的、更长时间的测试、更长的支持、很少的更新等,而现在的 Fedora (27) 更新快。
必须有一个过去的 Fedora 版本,它等同于当前版本的 RHEL - 和基于 RHEL 的 CentOS。两者现在都是第 7 版。哪个旧版本的 Fedora 与它们的级别相对应?
阅读debian openjdk-8 源码包的更新日志,我们看到有一个版本叫openjdk-8 (8u45-b14-4),下一个是openjdk-8 (8u60~b22-1)。
最后一个版本中的波浪号是什么意思?
我需要将 python 版本从 3.8 更改为 3.6 ?我怎样才能在 Ubuntu 20.04 中实现这一点?pyenv global 3.6.0我尝试过 pyenv,但是当我尝试像那时一样使用 pyenv 时,python3我仍然有 3.8 版本。