POSIX
系统编写的,但也适用于一些非POSIX
系统。LZMA Utils
的继承者。LZMA SDK
,但经过大量修改以适应XZ Utils
。LZMA2
,在.xz
容器格式中使用。XZ Utils
创建的输出比gzip
小30%
,比bzip2
小15%
。XZ Utils
由几个组件组成:
liblzma
是一个压缩库,其API
类似于zlib
。xz
是一个命令行工具,其语法类似于gzip
。xzdec
是一个仅解压缩的工具,比全功能的xz
工具小。shell
脚本(xzgrep
、xzdiff
等)已从gzip
改编,以方便查看、查找和比较压缩文件。LZMA Utils
命令行工具的仿真简化了从LZMA Utils
到XZ Utils
的过渡。虽然liblzma
具有类似zlib
的API
,但liblzma
不包含任何文件I/O
函数。计划了一个单独的I/O
库,它将通过易于使用的API
抽象处理.gz
,.bz2
和.xz
文件。
Git
存储库localhost@linux:~$ git clone https://git.tukaani.org/xz.git
localhost@linux:~$ sudo apt install autopoint po4a
localhost@linux:~$ mkdir ~/xz2arm
configure
localhost@linux:~$ cd xz
localhost@linux:~/xz$ ./autogen.sh
Makefile
localhost@linux:~/xz$ ./configure --host=arm-none-linux-gnueabi --prefix=${HOME}/xz2arm
localhost@linux:~/xz$ make
localhost@linux:~/xz$ make install
localhost@linux:~/xz2arm$ ls -la
total 24
drwxrwxr-x 6 localhost localhost 4096 Apr 27 14:59 .
drwxr-xr-x 47 localhost localhost 4096 Apr 27 14:59 ..
drwxrwxr-x 2 localhost localhost 4096 Apr 27 14:59 bin
drwxrwxr-x 3 localhost localhost Apr 27 14:59 include
drwxrwxr-x 3 localhost localhost 4096 Apr 27 14:59 lib
drwxrwxr-x 5 localhost localhost 4096 Apr 27 14:59 share
localhost@linux:~/xz2arm$ tree
.
├── bin
│ ├── lzcat -> xz
│ ├── lzcmp -> xzdiff
│ ├── lzdiff -> xzdiff
│ ├── lzegrep -> xzgrep
│ ├── lzfgrep -> xzgrep
│ ├── lzgrep -> xzgrep
│ ├── lzless -> xzless
│ ├── lzma -> xz
│ ├── lzmadec
│ ├── lzmainfo
│ ├── lzmore -> xzmore
│ ├── unlzma -> xz
│ ├── unxz -> xz
│ ├── xz
│ ├── xzcat -> xz
│ ├── xzcmp -> xzdiff
│ ├── xzdec
│ ├── xzdiff
│ ├── xzegrep -> xzgrep
│ ├── xzfgrep -> xzgrep
│ ├── xzgrep
│ ├── xzless
│ └── xzmore
├── include
│ ├── lzma
│ │ ├── base.h
│ │ ├── bcj.h
│ │ ├── block.h
│ │ ├── check.h
│ │ ├── container.h
│ │ ├── delta.h
│ │ ├── filter.h
│ │ ├── hardware.h
│ │ ├── index.h
│ │ ├── index_hash.h
│ │ ├── lzma12.h
│ │ ├── stream_flags.h
│ │ ├── version.h
│ │ └── vli.h
│ └── lzma.h
├── lib
│ ├── liblzma.a
│ ├── liblzma.la
│ ├── liblzma.so -> liblzma.so.5.3.99
│ ├── liblzma.so.5 -> liblzma.so.5.3.99
│ ├── liblzma.so.5.3.99
│ └── pkgconfig
│ └── liblzma.pc
└── share
├── doc
│ └── xz
│ ├── AUTHORS
│ ├── COPYING
│ ├── COPYING.GPLv2
│ ├── examples
│ │ ├── 00_README.txt
│ │ ├── 01_compress_easy.c
│ │ ├── 02_decompress.c
│ │ ├── 03_compress_custom.c
│ │ ├── 04_compress_easy_mt.c
│ │ └── Makefile
│ ├── examples_old
│ │ ├── xz_pipe_comp.c
│ │ └── xz_pipe_decomp.c
│ ├── faq.txt
│ ├── history.txt
│ ├── lzma-file-format.txt
│ ├── NEWS
│ ├── README
│ ├── THANKS
│ ├── TODO
│ └── xz-file-format.txt
├── locale
│ ├── cs
│ │ └── LC_MESSAGES
│ │ └── xz.mo
│ ├── de
│ │ └── LC_MESSAGES
│ │ └── xz.mo
│ ├── fr
│ │ └── LC_MESSAGES
│ │ └── xz.mo
│ ├── it
│ │ └── LC_MESSAGES
│ │ └── xz.mo
│ ├── pl
│ │ └── LC_MESSAGES
│ │ └── xz.mo
│ └── vi
│ └── LC_MESSAGES
│ └── xz.mo
└── man
└── man1
├── lzcat.1 -> xz.1
├── lzcmp.1 -> xzdiff.1
├── lzdiff.1 -> xzdiff.1
├── lzegrep.1 -> xzgrep.1
├── lzfgrep.1 -> xzgrep.1
├── lzgrep.1 -> xzgrep.1
├── lzless.1 -> xzless.1
├── lzma.1 -> xz.1
├── lzmadec.1 -> xzdec.1
├── lzmainfo.1
├── lzmore.1 -> xzmore.1
├── unlzma.1 -> xz.1
├── unxz.1 -> xz.1
├── xz.1
├── xzcat.1 -> xz.1
├── xzcmp.1 -> xzdiff.1
├── xzdec.1
├── xzdiff.1
├── xzegrep.1 -> xzgrep.1
├── xzfgrep.1 -> xzgrep.1
├── xzgrep.1
├── xzless.1
└── xzmore.1
25 directories, 92 files
localhost@linux:~/xz2arm$ cd bin
localhost@linux:~/xz2arm/bin$ file xz
xz: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, not stripped
确认无误后,即可将对应的库文件和相关的配置文件上传到开发板lib
和usr
目录中,当然也可以配合其他库文件进行相关的移植。