1.9libssh2
无法从 RHEL 8.1 及更高版本上的 EPEL 存储库安装(在 RHEL 8.3 上测试):
# dnf --enablerepo=epel install libssh2-1.9.0
...
All matches were filtered out by modular filtering for argument: libssh2-1.9.0
Error: Unable to find a match: libssh2-1.9.0
Run Code Online (Sandbox Code Playgroud)
其他 EPEL RPM 可以毫无障碍地安装。
如何在libssh2
不下载并本地安装的情况下安装它?
我今天遇到了一个奇怪的错误,在包含带有括号的目录的目录中运行脚本时,例如a()
.
最小工作示例
我设法将错误减少到以下最小工作示例:
在创建一个空目录/tmp
,并cd
把它:
mkdir /tmp/foo
cd /tmp/foo
Run Code Online (Sandbox Code Playgroud)
在其中创建一个名为foo.sh的脚本,其中包含:
foo() {
somevar=1;
case somevar in
aha) echo "something" ;;
*) echo "other" ;;
esac;
};
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
eval $(/bin/cat foo.sh)
Run Code Online (Sandbox Code Playgroud)
不应该有任何错误。
创建一个带括号的文件:
touch "a()"
Run Code Online (Sandbox Code Playgroud)
再次运行命令:
eval $(/bin/cat foo.sh)
Run Code Online (Sandbox Code Playgroud)
我现在得到错误:
bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)
为什么 bash 甚至关心目录中的文件?为什么括号会导致错误?
系统信息:
$ bash --version
GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright © 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later …
Run Code Online (Sandbox Code Playgroud) 尝试在 WSL 中使用 veracrypt(控制台)。
我制作了一个卷,似乎工作正常......但是当我尝试安装它时:
Done: 100.000% Speed: 5.0 MiB/s Left: 0 s
The VeraCrypt volume has been successfully created.
m17awl@M17A:/media/mike$ veracrypt /mnt/e/test.vc /media/mike/rsync_vc_drive_e/
Enter password for /mnt/e/test.vc:
Enter PIM for /mnt/e/test.vc:
Enter keyfile [none]:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
Error: fuse: device not found, try 'modprobe fuse' first
Run Code Online (Sandbox Code Playgroud)
注意已经看到这个问题,但是当我尝试这些命令时我得到这个:
m17awl@M17A:/media/mike$ modprobe fuse
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.4.0-19041-Microsoft
m17awl@M17A:/media/mike$ modprobe loop
modprobe: FATAL: Module loop not found in directory /lib/modules/4.4.0-19041-Microsoft
m17awl@M17A:/media/mike$ lsmod …
Run Code Online (Sandbox Code Playgroud) 我有一个 Debian 10 系统。它启用了安全启动。我正在尝试为 virtualbox 签名并加载新的内核模块。我使用 生成了证书和私钥openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/" -nodes
。然后我用 导入了这个密钥mokutil --import MOK.der
。然后我输入一些密码,重新启动并注册密钥。然后,在阅读了数十个不准确的教程(包括 Debian.org 自己的教程)后,他们都建议使用一个名为sign-file
. 然而,sign-file
它完全丢失了,并且对系统每个目录的递归搜索没有返回任何内容。在浏览了一些不起眼的论坛后,我发现了一个名为 的工具sbsign
,它似乎是签名任何内容的唯一可用选项。任何时候我尝试使用命令来签署模块sbsign --cert ~/MOK.pem --key ~/MOK.priv /lib/modules/4.19.0-9-amd64/misc/vboxdrv.ko
。然而,该命令返回Invalid DOS Header Magic
. 互联网上几乎没有任何地方提到此错误,也没有以任何有意义的方式与我的具体问题相关。
这个错误是什么意思?我可以做什么来签署这些模块?