为 ubuntu 10.04 LTS 提取 tar.xz 和 tar.lz 的 gnutls 库文件

Posted

技术标签:

【中文标题】为 ubuntu 10.04 LTS 提取 tar.xz 和 tar.lz 的 gnutls 库文件【英文标题】:Extract gnutls library files of tar.xz and tar.lz for ubuntu 10.04 LTS 【发布时间】:2013-06-03 07:45:57 【问题描述】:

我是 linux 平台的新手,我想为 ubuntu 提取 gnutls。如果我这样做,

$ls

然后,它将在下面显示这些文件。

gnutls-3.2.1.tar.lz
gnutls-3.2.1.tar.lz.sig
gnutls-3.2.1.tar.xz
gnutls-3.2.1.tar.xz.sig

当我下达命令时,

$ tar -xvf gnutls-3.2.1.tar.xz

我得到输出,

tar: xz: Cannot exec: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Exiting with failure status due to previous errors

我想提取这些文件。

    为什么给出两种格式? - xz 和 lz 为什么会有签名文件? - .sig 如何验证?我尝试通过gpgv <filename>.sig 命令验证,它说找不到公钥。 我需要一个单独的实用程序包吗?我看到了一个“xz-utils_4.999”,但它是beta。 http://manpages.ubuntu.com/manpages/lucid/man1/xz.1.html 还有其他稳定的实用程序包吗?从哪里以及如何下载?

【问题讨论】:

【参考方案1】:

为什么给出两种格式? - xz 和 lz

仅为方便起见,以便人们可以下载他们有可用/安装适当工具的工具。请记住,大多数“linux”库也旨在用于其他类 unix 平台(例如 BSD、Solaris、AIX、OSX 甚至)。不能假设在每个平台上都可以轻松使用 xz 等更新的工具。

我需要一个单独的实用程序包?

是的,来自 tar 的错误信息告诉你它找不到 xz 命令:

tar: xz: Cannot exec: No such file or directory

您正确识别了要安装的软件包xz-utils。如果您尝试提取 .lz 存档,它会抱怨找不到 lzip(并且您将安装 lzip 包)。

没有太大区别,lzip 是较旧的 LZMA 标准,xz 是较新的 LZMA2。 “beta”这个标签总是主观的。在这种情况下,我不会担心!

为什么会有签名文件?

这样人们就可以确定他们下载的档案是由他们期望的人发布的。这是为了防止黑客可以访问该站点(或镜像)然后将一些恶意代码添加到存档中的源。

如何验证?

你的命令很好,但你需要明白的是你必须告诉 GnuPG 你信任哪些密钥。通常,您会获取作者发布的公钥(通常是 .asc 或 .txt)文件并将它们导入您的 gpg 密钥环。在 GnuTLS 下载页面上:

所有版本均使用Nikos' 或Simon's OpenPGP 密钥签名。

所以你可以这样做:

wget -O- http://josefsson.org/key.txt | gpg --import
wget -O- http://members.hellug.gr/nmav/pgpkeys.asc | gpg --import

另一种方式是人们只发布他们的 RSA 密钥 ID,该 ID 可以从众所周知的 gpg 密钥服务器导入。例如,您可以像这样导入我的公钥:

gpg --recv-key 15C4D63E

对于大多数默认 gpg 配置,应该从公钥服务器(可能是 keys.gnupg.net)获取指定的密钥。

之后,gpg 应该报告其中任何一个作者的“良好签名”,但预计它仍会显示警告:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

这只是意味着不存在信任链(基于您在密钥环中标记为受信任的密钥)来说明这是指定人员的正确密钥。它可能是黑客的钥匙。

在某些时候,您必须确信您获得的密钥来自正确的人,但具体要信任什么以及何时是每个人根据您自己的偏执程度自行研究和决定的事情,或者当前目的。

就个人而言,除非我打算重新分发由它们构建的东西,否则我不会费心去验证源档案。

【讨论】:

攻击者可以轻松更改签名文件。 @MatthewMitchell 当然,攻击者可以更改签名文件,但不能轻易为他们无法控制的密钥伪造有效签名。这就是为什么公钥通常通过不同的主机或公钥服务器发布的原因。这也是为什么最好将它们添加到您的受信任密钥中的原因,以及为什么人们会相互签署彼此的密钥等以建立信任网络,这样人们就不需要盲目地接受在给定的密钥上发布的密钥网页对于声称的作者是正确的。 对于那些阅读“lzip 是较旧的 LZMA 标准,xz 是较新的 LZMA2”的人,请注意 lzip 和 xz 是独立的项目,并且 xz 在许多方面(包括压缩比)客观上似乎比lzip,所以如果你有选择的话应该首选 lzip(根据 nongnu.org/lzip/xz_inadequate.html 这是有偏见的,但 AFAICT 正确)【参考方案2】:
tar --lzip -xvf gmp-5.1.2.tar.lz

为我工作

正如下面在 cmets 中提到的,您可能必须先安装该库,然后该命令才能工作:

sudo apt-get install lzip

【讨论】:

我想解压同一个文件 :P【参考方案3】:

您可以通过以下方式解决:

# The lzip page is: http://lzip.nongnu.org/lzip.html
# Download the lzip:
wget http://download.savannah.gnu.org/releases/lzip/lzip-1.15.tar.gz
# decompress:
tar xvf lzip-1.15.tar.gz
cd lzip-1.15
# configure / build
./configure --prefix=/usr
make
# install
sudo make install

# now you can unzip with 
tar xvf gmp-5.1.3.tar.lz

【讨论】:

假设使用前缀指定的目录的 bin 子目录(因此,此处为 /usr/bin)位于 bash PATH 上,此方法有效。如果不是,则需要将其添加到 PATH 的 .bashrc 文件中(或其他方式)。 @dbliss,是的,不仅仅是路径,它假定您也有 wgettarsudo。但我很好奇哪个像 OS 一样的 unix 默认没有路径上的 /usr/bin。 /usr/bin 是默认设置,但这引发了一个问题,为什么您使用 --prefix 选项。我更关心我的情况(以及使用该选项的绝大多数情况),其中使用--prefix 指定了非默认目录。我使用了您的代码,然后意识到我必须将非默认目录添加到我的路径中。你提到的其他假设——例如你需要wget——是显而易见的,不值得一提。 当我运行“sudo make install”命令时,我收到以下错误if [ ! -d "/usr/bin" ] ; then install -d -m 755 "/usr/bin" ; fi install -m 755 ./lzip "/usr/bin/lzip" install: /usr/bin/lzip: Operation not permitted make: *** [install-bin] Error 71任何想法为什么?我在 OSX 上 我不是 OSX 用户,但我认为 OSX 不使用 sudo ......我认为它使用 brew 代替......但你需要了解 sudo 做什么...sudo 的目标是“超级用户做...”。因此,您需要在 OSX 中以超级用户身份执行 make install。我认为这很简单,只需将sudo 替换为brew……但同样……我不是 OSX 用户。【参考方案4】:

    安装lzip

    启动以下命令,创建xxx.tar 文件并在提取后删除xxx.tar.lz 文件:

    lzip -d xxx.tar.lz 
    

    启动以下命令以最终解压:

    tar zxvf xxx.tar
    

【讨论】:

【参考方案5】:

LZIP 在Cygwin 中可用。您可以安装 lzip(来自 cygwin 设置中的 Archive 分支)和 tar(来自 Base 分支)。之后你可以做

tar --lzip -xvf your_file.tar.lz

为我工作。

【讨论】:

【参考方案6】:

首先要解压xz文件,你需要安装xz-utils。如果在 debian 或 ubuntu 中:

sudo apt-get install xz-utils

现在您可以使用以下方法提取文件:

tar -xJf file_name.xz

【讨论】:

【参考方案7】:

对于 tar.lz,如果你的 tar 不支持 --lzip

tar xf filename.tar.lz --use-compress-program lrunzip

【讨论】:

以上是关于为 ubuntu 10.04 LTS 提取 tar.xz 和 tar.lz 的 gnutls 库文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 10.04 LTS 中升级现有的 phpmyadmin 版本?

Installing Webmin on Ubuntu Server 10.04 LTS (Lucid)

QDevelop Qt IDE 在 Ubuntu 10.04 LTS Lucid Lynx qwt

Ubuntu 的:10.04 ,10.4.2 ,10.10 ,11.04 那个版本好用,稳定

Ubuntu 10.04怎样在VMware7中安装VMware Tool及如何全屏

ubuntu10.04 搭建海思开发环境