![在没有 root 用户访问权限的情况下安装 Midnight Commander](https://linux22.com/image/151121/%E5%9C%A8%E6%B2%A1%E6%9C%89%20root%20%E7%94%A8%E6%88%B7%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%89%E8%A3%85%20Midnight%20Commander.png)
我使用非 root 非 sudo 权限帐户获得了 RedHat 系统访问权限。我想安装 Midnight Commander (mc),但 yum 需要 root 权限。如何将 mc 安装到我的本地家庭而不重建它,仅使用 RPM 文件?
答案1
可以做到这一点,并在没有 root 访问权限的情况下获得完全正常工作的 Midnight Commander。归结为以下步骤:
- 获取所需版本的 RPM 文件。
- 解压 RPM 文件。意识到 RPM 只是一个 gzip 存档,它又包含 CPIO 文件,这是另一个存档。您可能会在网上找到许多关于如何执行此操作的参考资料。查找“rpm2cpio”命令。搜索“从 RPM 包的 cpio 存档中提取文件”。所以,我假设您可以解压 mc-*.rpm 并获得 2 个目录:“etc”和“usr”。将它们放在主目录下的目录中,例如“mc”,因此您将得到“~/mc/etc”和“~/mc/usr”。
- 如果未设置,请设置 ~/mc/usr/bin 中文件的可执行权限。 (使用“chmod”)
- 如果您现在运行 ~/mc/usr/bin/mc,它应该可以工作(至少它可以在我的 RHEL 7.4 上运行),但是您会收到关于找不到文件的警告,并且它的功能有限。但尽管如此,运行一次即可让它创建本地目录。
- 使用“export MC_DATADIR=~/mc/usr/share/mc”设置环境变量 MC_DATADIR。您还应该将其添加到您的 .bashrc 文件中。 (如“echo text_to_add >> ~/.bashrc”)。
- 向 .bashrc 文件添加别名“alias mc=/home/vladimir.shutow/mc/usr/bin/mc”。您可能需要使用“source ~/.bashrc”应用更改。
- 现在,让我们进行一些复制。将 ~/mc/etc/mc 的内容复制到 ~/mc/usr/share/mc 。
- 将 ~/mc/usr/libexec/mc 的内容复制到 ~/.local/share/mc 。
- 将文件 ~/mc/usr/share/mc/syntax/Syntax 复制到 ~/.config/mc/mcedit 目录。
- 如果您希望查看器扩展正常工作,请为 ~/mc/usr/libexec/mc/ext.d 目录中的所有 *.sh 文件设置可执行权限,并编辑 ~/mc/usr/share/mc/mc.ext 文件引用 /usr/libexec/mc/ext.d/*.sh 文件的所有行都指向 ~/mc/usr/libexec/mc/ext.d/*.sh 。
现在,启动“mc”应该会为您带来午夜指挥官。