我正在尝试编写一个使用一些非 shell 内置命令(例如expect)的脚本,并且我打算离线使用它。
通常情况下,我可以安装expect使用的Fedorasudo yum install expect或Ubuntu使用sudo apt install expect。
但我想下载expect包,它的一切都取决于使用sudo apt-cache depends expect(学习后取决于使用...)sudo apt download <depends>。
我试了一下,下载了一些.deb文件。我也试过这个:
data.tar从.deb文件中提取文件(我不想使用,dpkg -i <some_pkg.deb>因为我没有一直成功,我想在 Fedora 中使用它 - 没有使用dpkg-)。
使用提取所有文件 tar -xhf data.tar -C ~/demo
最后我使用手动复制系统目录中的所有文件 cp -rPn ~/demo/bin/* /bin ~/demo/etc/* /etc ...
但是当我这样做时——尤其是在 Fedora 中使用这种.deb类型的包——,我得到了segmentation fault (core dumped)错误并且我的系统已经死了。
我知道我正在尝试不推荐和危险的方法来实现我的目标,但是有没有办法(尤其是备份命令,例如/usr/bin/expect及其所有依赖项)离线使用它?
不要尝试跨发行版混合和匹配包,除非在最简单的情况下,否则它不太可能可靠地工作。
相反,使用目标发行版的工具。您已经了解了如何在基于 Debian 的发行版上下载软件包及其依赖项;这在基于 Fedora 的发行版上也是可能的。要下载expect及其所有依赖项,请创建一个临时根目录和一个临时下载目录,并告诉dnf下载安装expect在临时根目录中所需的软件包:
mkdir /tmp/expectroot
mkdir /tmp/expectdeps
sudo dnf install --installroot /tmp/expectroot \
--downloadonly --downloaddir /tmp/expectdeps \
--releasever 32 expect
Run Code Online (Sandbox Code Playgroud)
(酌情替换“32”)。
然后,无论目标系统上的现有依赖项如何,您都可以在/tmp/expectdeps.
| 归档时间: |
|
| 查看次数: |
7196 次 |
| 最近记录: |