- Файлы в формате pacman и zst в Archlinux: что это и как установить?
- Формат пакетов pacman
- Формат пакетов zst
- Установка пакетов в формате pacman и zst
- есть ли поддержка zstd в каком-либо варианте tar?
- Как мне распаковать архив с файлом tar.zst?
- 1 ответ
- wbtc.cc.tar.zst [closed]
- 6 Answers 6
- Linked
- Related
- Hot Network Questions
Файлы в формате pacman и zst в Archlinux: что это и как установить?
Пользователи Archlinux и основанных на нем дистрибутивов привыкли устанавливать пакеты либо через менеджер Pacman, либо посредством Pamac иметь доступ к AUR и тем программам, которые он представляет в дополнение к основным репозиториям.
Поэтому арчеводы редко задумываются о том, что софт в Archlinux можно установить посредством установочных файлов в формате pacman и zst. Ниже расскажу про два этих формата и покажу, как их устанавливать.
Формат пакетов pacman
Этот формат основан на формате tar, который используется для упаковки файлов в архивы. Однако, в отличие от обычных архивов tar, пакеты pacman содержат дополнительные метаданные, которые описывают пакет и его зависимости. Каждое имя файла pacman имеет следующую структуру:
- имя_пакета — имя пакета
- версия — версия пакета
- релиз — номер релиза пакета, который увеличивается каждый раз, когда пакет обновляется
- архитектура — архитектура процессора, для которой был собран пакет (например, x86_64 для 64-битных процессоров)
- сжатие — метод сжатия, используемый для упаковки пакета (обычно используется формат gzip или xz)
Формат пакетов zst
Начиная с версии Pacman 6.0, по умолчанию используется новый формат сжатия пакетов — zst. Формат zst основан на алгоритме сжатия zstd, который обеспечивает более высокую степень сжатия по сравнению с gzip и xz.
Формат zst имеет ту же структуру, что и формат pacman, но использует расширение .pkg.tar.zst. Например:
myapp-1.0-1-x86_64.pkg.tar.zst
Для установки пакетов, упакованных в формат zst, необходимо убедиться, что установлена версия pacman 6.0 или новее. В противном случае, необходимо установить пакет pacman-static, который содержит статически собранную версию pacman 6.0.
Установка пакетов в формате pacman и zst
У меня имеется два установочных файла для пакетов Tabby и PortProton.
есть ли поддержка zstd в каком-либо варианте tar?
Подскажите — а есть ли уже существующий патч для tar (GNU preferrably) поддерживающий zstd дабы можно было единой командой созать .tar.zst.
Понятно что можно написать что-то типа tar -cvf — | zstd -6 — -o folder.tar.zst
UPD: ключ —zstd решает «проблему»
man tar -I, --use-compress-program=COMMAND Filter data through COMMAND. It must accept the -d option, for decompression. The argument can contain command line options. --zstd Filter the archive through zstd(1).
—zstd в GNU tar двухлетней давности (1.30) есть.
Ловите некрофила. Загуглить конечно что в гну тар это есть лет 5 уже очень сложно.
Ну а вот переменной окружения в которой можно было бы задать экзотические параметры по типу xz_opts по-моему нет, так что что-то типа имеет право на жизнь.
# Use: source_dir="$" dest_file="$" tar -cvf - $ | zstd -6 - -o $
Может лучше это закинуть в ~/bin, чем строгать сообщение на форум?
IPR ★★★★★ ( 09.09.19 15:55:31 MSK )
Последнее исправление: IPR 09.09.19 15:58:10 MSK (всего исправлений: 1)
После более года разработки представлен новый стабильный релиз архиватора GNU Tar 1.31. В новом выпуске реализована поддержка алгоритма сжатия данных zstd (Zstandard), который демонстрирует в 3-5 раз более высокую скорость сжатия по сравнению с zlib/Deflate и в два раза более быструю распаковку, при улучшении уровня сжатия на 10-15%. Для использования нового алгоритма при сжатии предложена опция ‘—zstd’. При распаковке применение zstd распознаётся автоматически. Кроме того, Zstd используется при указании для файлов расширений ‘.zst’ и ‘.tzst’.
IPR ★★★★★ ( 09.09.19 15:57:43 MSK )
Последнее исправление: IPR 09.09.19 15:57:55 MSK (всего исправлений: 1)
да, это я чего-то заработался и лоханулся. надо было man tar всего-лишь сделать. жаль что они не сделали какого-нибудь короткого ключа.
у tar есть ключ -a для автоматического распознания по суффиксу
aim1159 ★★★★★ ( 25.10.19 18:02:17 MSK )
Последнее исправление: aim1159 25.10.19 18:03:32 MSK (всего исправлений: 3)
- tar --zstd --cvf .tar.zst + tar --zstd --cvf .tar.zst
$ tar --version tar (GNU tar) 1.31 Copyright (C) 2019 Free Software Foundation, Inc. Лицензия GPLv3+: GNU GPL версии 3 или новее Это свободное ПО: вы можете изменять и распространять его. Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом. Авторы: John Gilmore и Jay Fenlason.
* Support for zstd compression New option '--zstd' instructs tar to use zstd as compression program. When listing, extractng and comparing, zstd compressed archives are recognized automatically. When '-a' option is in effect, zstd compression is selected if the destination archive name ends in '.zst' or '.tzst'.
$ tar acvf ./test_files.tar.zst ./test_files ./test_files/ ./test_files/kernel/ ./test_files/kernel/dma/ ./test_files/kernel/dma/debug.c ./test_files/kernel/dma/virt.c ./test_files/kernel/dma/swiotlb.c ./test_files/kernel/dma/Makefile ./test_files/kernel/dma/contiguous.c ./test_files/kernel/dma/remap.c ./test_files/kernel/dma/mapping.c ./test_files/kernel/dma/Kconfig ./test_files/kernel/dma/dummy.c ./test_files/kernel/dma/coherent.c ./test_files/kernel/dma/direct.c --- skip --- $ ls test_files test_files.tar.zst
Как мне распаковать архив с файлом tar.zst?
Я не знаю, как мне распаковать файл с расширением tar.zst, и хотя я искал решения в Интернете, у меня не оказалось ничего полезного в этом вопросе.
1 ответ
Расширение.zst означает, что архив сжат zstd.
Команда tar имеет опцию -I (—use-compress-program), чтобы указать команду для сжатия / распаковки.
Вы можете использовать его следующим образом.
$ tar -I zstd -xvf archive.tar.zst
Распакуйте его в Терминале.
Я знаю, что не так много доступных ресурсов, но я нашел это здесь: http://manpages.org/zstd
Если у вас стандартный стек сборки cmake + gcc:
git clone https://github.com/facebook/zstd.git cd zstd/build/cmake cmake . make ./programs/zstd -d /path/to/file.zst
В macOS Mojave 10.14.3 мне не удалось указать алгоритм сжатия с помощью флага -I. Это сработало для меня;
Установите zstd с помощью brew, если он еще не установлен.
- Распаковать из.zst: unzstd filename.tar.zst или zstd -d filename.tar.zst . filename.tar будет создан.
- Список сжатых архивов: tar tf filename.tar .
- Распакуйте сжатый архив: tar xf filename.tar .
https://pypi.org/project/zstandard/
import zstandard as zstd . . . . elif filename_extension == ".zst": dctx = zstd.ZstdDecompressor() with open(submission_path_read, 'rb') as ifh, open(submission_path_save, 'wb') as ofh: dctx.copy_stream(ifh, ofh, write_size=65536)
Я нашел некоторые из этих файлов в загрузках Anaconda. После установки Anaconda я загружал дополнительные пакеты. Загруженные пакеты в моем каталоге загрузок Anaconda были zip-файлами (без расширения.zip), но у них были эти .tar.zst файлы внутри них. Это привело меня кпереполнению стека, чтобы выяснить, что это такое, что привело меня к этому вопросу. Если вы находитесь в одной лодке, то Anaconda также дает ответ.
Получается, что zstd а также unzstd исполняемые файлы также устанавливаются установщиком Anaconda, поэтому они должны быть доступны в командной строке, если вы находитесь в среде Anaconda.
wbtc.cc.tar.zst [closed]
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
How can I decompress these files in terminal?
People looking for a pythonic way, here is the tool which can help you in decompressing .zst files on windows OS. pypi.org/project/zstandard
6 Answers 6
The extention .zst means that the archive is compressed by zstd.
The tar command has an option -I (—use-compress-program) to specify a command for compression/decompression.
You can use it as follows.
$ tar --use-compress-program=unzstd -xvf archive.tar.zst
@user1271772 Might not be installed. For Debian, sudo apt-get install zstd . yum or whatever for other distros.
Is there a way without installing anything extra? I don’t have sudo permission on the server. I would rather not have to scp the file to a different machine, uncompress, then transfer back.
The -I or —use-compress-program argument only works if I use the equal sign format on the Mac. So, tar -I=/usr/local/sbin/zstd -xvf archive.tar.zst works but the one given above doesn’t. see detail on gnu.org/software/tar/manual/html_node/gzip.html
If you want to extract you have to select unzstd . The following worked for me: tar —use-compress-program=unzstd -xvf archive.tar.zst
Decompress it in Terminal.
I know there aren’t many resources available but I found this here: http://manpages.org/zstd
you have to install the package zstd for the unzstd command. note, that it has problems with a colon in the package name, so rename those packages beforehand
@rubo77 For me, it works with a colon, must be updated or something. But what I am guessing is that your shell is not working and maybe quote it with » or «» , or you can just escape it with \.
If you have a standard cmake + gcc build stack:
git clone https://github.com/facebook/zstd.git cd zstd/build/cmake cmake . make ./programs/zstd -d /path/to/file.zst
as someone without root permissions, this answer was amazingly helpful and complete. Cannot thank you enough
On macOS Mojave 10.14.3, I was unable to specify the compression algorithm using the -I flag. Doing it this way worked for me;
Install zstd using brew if you don’t already have it installed.
- Decompress from .zst: unzstd filename.tar.zst or zstd -d filename.tar.zst . filename.tar will be created.
- List compressed archive: tar tf filename.tar .
- Extract the compressed archive: tar xf filename.tar .
I am not clear on what you meant but zstd is a utility that implements the zstandard compression algorithm.
In your post, you said Mac 10. I think you meant to say something along the lines of macOS 10.15, Catalina or something to that effect. OS X 10.0 Cheetah was released in 2001: en.wikipedia.org/wiki/MacOS#Mac_OS_X_10.0_Cheetah
Download the Python library and then you can use Python like following:
import zstandard as zstd dctx = zstd.ZstdDecompressor() with open(submission_path_read, 'rb') as ifh, open(submission_path_save, 'wb') as ofh: dctx.copy_stream(ifh, ofh, write_size=65536)
That’s why there is . The code is not complete. OP question’s title was How to decompress. I answered that.
This is useful, saved me further trouble adding a package to git-for-windows (MSYS2) avoiding all manner of hoops. And it works on Windows. Used python -m pip install zstandard to install the module.
I found some of these files in the Anaconda downloads. After I installed Anaconda, I was downloading additional packages. The downloaded packages in my Anaconda download directory were zip files (without the .zip extension), but they had these .tar.zst files inside them. That led me to stackoverflow to figure out what they were, which led me to this question. If you’re in the same boat, then Anaconda also supplies the answer.
It turns out that the zstd and unzstd executables are also installed by the Anaconda installer, so they should be available at the command line if you’re in your Anaconda environment.
Linked
Related
Hot Network Questions
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.12.43529
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.