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

SHR*_*HRI 15 tar ubuntu-10.04 gnutls

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

$ls
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

当我发出命令时,

$ tar -xvf gnutls-3.2.1.tar.xz
Run Code Online (Sandbox Code Playgroud)

我得到输出,

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
Run Code Online (Sandbox Code Playgroud)

我想提取这些文件.

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

Hom*_*er6 27

tar --lzip -xvf gmp-5.1.2.tar.lz
Run Code Online (Sandbox Code Playgroud)

为我工作

如下面评论中所述,您可能必须在命令运行之前安装库:

sudo apt-get install lzip
Run Code Online (Sandbox Code Playgroud)

  • 我想解压缩同一个文件:P (5认同)

小智 13

  1. 安装lzip.

  2. 启动以下命令以创建xxx.tar文件并在解xxx.tar.lz压缩后删除文件:

    lzip -d xxx.tar.lz 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启动以下命令以最终解压缩:

    tar zxvf xxx.tar
    
    Run Code Online (Sandbox Code Playgroud)


Wil*_*els 9

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

只是为了方便起见,以便人们可以下载他们拥有适当工具/安装的工具.请记住,大多数"linux"库也适用于其他类似unix的平台(例如BSD,Solaris,AIX,OSX甚至).不能假设像xz这样的更新工具可以在每个平台上随时使用.

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

是的,来自tar的错误消息告诉您它无法找到xz命令:

tar: xz: Cannot exec: No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

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

为什么有签名文件?

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

如何验证?

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

所有版本都使用NikosSimon的 OpenPGP密钥签名.

所以你可以这样做:

wget -O- http://josefsson.org/key.txt | gpg --import
wget -O- http://members.hellug.gr/nmav/pgpkeys.asc | gpg --import
Run Code Online (Sandbox Code Playgroud)

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

gpg --recv-key 15C4D63E
Run Code Online (Sandbox Code Playgroud)

对于大多数默认的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.
Run Code Online (Sandbox Code Playgroud)

这只是意味着没有信任链(基于您在密钥环中标记为可信任的密钥)来说这是指定人员的正确密钥.它可能是黑客的关键.

在某些时候,你必须确信你获得的钥匙来自合适的人,但确切地信任什么,何时是每个人根据你自己的偏执或当前目的进行研究和自我决定的东西.

就个人而言,我不打算验证源档案,除非我打算重新分配从它们构建的东西.


ton*_*ton 6

您可以解决:

# 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
Run Code Online (Sandbox Code Playgroud)