当前位置: 首页 > 工具软件 > XZ Utils > 使用案例 >

[ 移植 ] ___ Utils : Xz

禄奇希
2023-12-01

概述


  • 一款高压缩比的免费通用数据压缩软件。
  • 为类POSIX系统编写的,但也适用于一些非POSIX系统。
  • LZMA Utils的继承者。
  • 压缩代码的核心是基于LZMA SDK,但经过大量修改以适应XZ Utils
  • 目前主要的压缩算法是LZMA2,在.xz容器格式中使用。
  • 对于典型文件,XZ Utils创建的输出比gzip30%,比bzip215%

XZ Utils由几个组件组成:

  • liblzma是一个压缩库,其API类似于zlib
  • xz是一个命令行工具,其语法类似于gzip
  • xzdec是一个仅解压缩的工具,比全功能的xz工具小。
  • 一组shell脚本(xzgrepxzdiff等)已从gzip改编,以方便查看、查找和比较压缩文件。
  • LZMA Utils命令行工具的仿真简化了从LZMA UtilsXZ Utils的过渡。

虽然liblzma具有类似zlibAPI,但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

确认无误后,即可将对应的库文件和相关的配置文件上传到开发板libusr目录中,当然也可以配合其他库文件进行相关的移植。

 类似资料: