Извлеките файлы библиотеки gnutls из tar.xz и tar.lz для Ubuntu 10.04 LTS

Я очень новичок в платформе Linux и хочу извлечь gnutls для Ubuntu. Если я сделаю,

$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

Я хочу извлечь эти файлы.

  1. Почему даны два типа форматов? - хз и лз
  2. Зачем существуют сигнатурные файлы? - .sig Как это проверить? Пробовал проверить командой gpgv <filename>.sig, пишет что открытый ключ не найден.
  3. Мне нужен отдельный пакет утилит? Я видел один, "xz-utils_4.999", но это бета-версия. http://manpages.ubuntu.com/manpages/lucid/man1/xz.1.html
  4. Какой-нибудь другой стабильный пакет утилит? Откуда и как скачать?

person SHRI    schedule 07.06.2013    source источник


Ответы (7)


Почему даны два типа форматов? - хз и лз

Только для удобства, чтобы люди могли скачать тот, для которого у них есть соответствующие инструменты. Помните, что большинство библиотек «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. Ярлык «бета» всегда субъективен. В этом контексте я бы не беспокоился!

Для чего нужны файлы сигнатур?

Чтобы люди могли быть уверены, что скачанный ими архив был опубликован именно тем человеком, которого они ожидают. Это делается для защиты от возможности того, что хакер может получить доступ к сайту (или зеркалу), а затем добавить вредоносный код в исходники в архиве.

Как это проверить?

Вы хорошо поняли эту команду, но вам нужно понять, что вы должны сообщить GnuPG, каким ключам вы доверяете. Как правило, вы берете файлы открытого ключа (обычно .asc или .txt), опубликованные автором (авторами), и импортируете их в свою связку ключей gpg. На странице загрузок GnuTLS:

Все выпуски подписаны с помощью Nikos' или Ключ Саймона OpenPGP.

Таким образом, вы можете сделать что-то вроде:

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

Другой способ — когда люди публикуют только свой идентификатор ключа RSA, который можно импортировать с общеизвестных серверов ключей 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.

Это просто означает, что не существует цепочки доверия (основанной на ключах, которые вы пометили как доверенные в своей связке ключей), чтобы сказать, что это правильный ключ для указанного лица. Вместо этого это может быть ключ хакера.

В какой-то момент вы должны быть уверены, что ключ, который вы получаете, исходит от нужного человека, но что именно доверять и когда каждый человек должен исследовать и решать сам, исходя из вашего собственного уровня паранойи или текущих целей.

Лично я не проверяю исходные архивы, если только не планирую распространять что-то, созданное на их основе.

person Will Daniels    schedule 30.06.2013
comment
Злоумышленник может легко изменить файлы сигнатур. - person Matthew Mitchell; 20.12.2013
comment
@MatthewMitchell Конечно, злоумышленник может изменить файлы подписи, но не может легко подделать действительную подпись для ключа, которым он не управляет. Вот почему открытые ключи часто публикуются через другой хост или сервер открытых ключей. По этой же причине лучше один раз добавить их в свои доверенные ключи, и почему люди подписывают ключи друг друга и т. д., чтобы создать сеть доверия, чтобы людям не приходилось слепо соглашаться с тем, что ключ, опубликованный на данном веб-страница верна для заявленного автора. - person Will Daniels; 31.12.2013
comment
Для тех, кто читает lzip — это более старый стандарт LZMA, xz — более новый LZMA2, имейте в виду, что lzip и xz — это отдельные проекты, и xz объективно во многих отношениях (включая степень сжатия) хуже, чем lzip, поэтому lzip следует предпочесть, если у вас есть вариант (согласно nongnu.org/lzip/xz_inadequate.html, который является предвзятым, но на самом деле правильно) - person Warbo; 03.08.2018

tar --lzip -xvf gmp-5.1.2.tar.lz

Работал на меня

Как упоминалось ниже в комментариях, вам, возможно, придется установить библиотеку, прежде чем команда заработает:

sudo apt-get install lzip
person Homer6    schedule 11.09.2013
comment
Я хотел разархивировать тот же файл: P - person rockstar; 20.03.2014

  1. Установите lzip.

  2. Запустите следующую команду, которая создает файл xxx.tar и удаляет файл xxx.tar.lz после извлечения:

    lzip -d xxx.tar.lz 
    
  3. Запустите следующую команду, чтобы окончательно распаковать:

    tar zxvf xxx.tar
    
person Ranaivo    schedule 13.03.2014

Вы можете решить с помощью:

# 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
person ton    schedule 06.02.2014
comment
это работает, предполагая, что подкаталог bin каталога, указанного с префиксом (так, /usr/bin здесь), находится в пути bash. если это не так, нужно будет добавить его в PATH в файле .bashrc (или иначе). - person dbliss; 10.10.2015
comment
@dbliss, да, не только путь, но и предполагается, что у вас есть wget, tar и sudo. но мне любопытно, какая Unix-подобная ОС не имеет пути /usr/bin по умолчанию. - person ton; 11.10.2015
comment
/usr/bin используется по умолчанию, но возникает вопрос, почему вы вообще использовали параметр --prefix. меня больше беспокоил мой случай (и подавляющее большинство случаев, в которых используется этот параметр), где каталог не по умолчанию указан с помощью --prefix. я использовал ваш код, а затем понял, что мне нужно добавить каталог не по умолчанию в свой путь. другие предположения, которые вы упомянули, например, что вам нужно wget, очевидны и не заслуживают упоминания. - person dbliss; 11.10.2015
comment
когда я запускаю команду 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 есть идеи, почему? я на ОСХ - person howlee; 03.01.2017
comment
Я не пользователь OSX, но я думаю, что OSX не использует sudo... Я думаю, что вместо этого используется brew... но вам нужно понять, что делает sudo... sudo цели суперпользователя делают.... так что, вам нужно выполнить make install как суперпользователя в вашей OSX. Я думаю, что это просто заменить sudo на brew... но опять же... я не пользователь OSX. - person ton; 03.01.2017
comment
Использование tar xvf myfile.tar.lz в конце не сработало, а lzip -d myfile.tar.lz сработало. Спасибо! - person Adam Denoon; 08.04.2017
comment
tar (GNU tar) 1.29 у меня работает... вы можете попробовать... получить его на ftp.gnu.org/ gnu/tar и соберите его так же, как ./configure --prefix=/usr && make && sudo make install - person ton; 08.04.2017
comment
Это потрясающе - person Arnav M.; 11.10.2017

Во-первых, чтобы извлечь файлы xz, вам нужно установить xz-utils. Если в Debian или Ubuntu:

sudo apt-get install xz-utils

Теперь вы можете извлекать файлы, используя:

tar -xJf file_name.xz

person scaamanho    schedule 04.03.2016

LZIP доступен в Cygwin. Вы можете установить lzip (из ветки Archive в настройках cygwin) и tar (из ветки Base). После этого вы можете сделать

tar --lzip -xvf your_file.tar.lz

Работал на меня.

person Arty    schedule 26.08.2014

Для tar.lz, если ваш tar не поддерживает --lzip

tar xf filename.tar.lz --use-compress-program lrunzip
person luken    schedule 15.05.2018