我正尝试按照以下说明在我的 CentOS VPS 上安装 mumble:
http://www.hosting.com/support/linux/install-the-mumble-voip-server-to-redhat-or-centos
当我到达这一行时:
rpm2cpio mumble-server-1.2.2-3mdv2011.0.x86_64.rpm > file.lzma
lzma -d file.lzma
我收到此错误:
root@vps-1112788-12524 [/home/~~~~/mumble]# rpm2cpio mumble-1.2.4-0.20120422.1-mdv2012.0.x86_64.rpm > file.lzma
root@vps-1112788-12524 [/home/~~~~/mumble]# lzma -d file.lzma
lzma: file.lzma: File format not recognized
我确实更新了文件的名称,因为他们给我的链接不可用。我从同一个地方得到了新的 rpm:
http://www.rpmfind.net/linux/rpm2html/search.php?query=mumble+server&submit=Search+...
我是 Linux 新手,所以我不知道自己做错了什么。
为你解决了这个问题。不建议在 RedHat 及其衍生产品上安装老式 Unix tar.gz 任何软件包(就此而言,在大多数基于软件包的发行版上),因为弄乱文件的可能性非常高,无法挽回。
考虑到这一点,我建议做几件事来减轻你的负担。
首先,作为 root
yum install rpm-build rpmrebuild rpmlint ruby ruby-devel
。这将为实时节省时间的实用程序设置环境,fpm
. 接下来,安装 fpm(以 root 身份):gem install fpm
现在您有了真正的享受:一个几乎自动的 RPM 构建环境。从 rpmfind 站点(在您链接到的教程中提到)下载 Mandriva 的 RPM,并提取(使用 cpio - 那是您遇到的地方 - 请阅读
man cpio
页面或文件滚动器)安装后要运行的脚本,将它们与在您的教程中发布的说明,并放在手边以备日后使用。现在,下载并重建整个 mumble-server 源 .tar.gz 存档,如果提供了校验和/摘要,则检查它的完整性:
这将构建包并为您调用 Emacs 以自定义 RPM .spec 文件并包含您从 Mandriva 的 RPM 和教程中收集的片段。完成后,保存更改并退出 Emacs,按
y
以使用新设置重建包。重建后,它将被放入 ARCH 子目录,您可以从那里发布yum install mumble-server*.rpm
以纠正问题。RPM 的巨大优势是能够在出现问题时卸载。最后一件事,但可能是最重要的:不要盲目相信陌生人的建议(包括我,尤其是我!)。自己阅读
man
和info
翻页,对网上写的任何内容持保留态度,并尝试准确理解您在做什么以及为什么这样做。为了解决您提取 RPM 存档的直接问题,我建议使用 cpio,如下所示
这会将所有文件提取到当前目录中。请注意,它们将位于各自的子目录中,即如果您提取到/var/tmp,则二进制文件将位于/var/tmp/usr/bin中。但是,不能保证该程序将在不受支持的发行版上运行。