Squashfs와 XZ를 작동시키려면 어떻게 해야 합니까?

Squashfs와 XZ를 작동시키려면 어떻게 해야 합니까?

Linux Mint를 빠르게 마스터하려고 하는데 문제가 너무 많습니다.

내가 가장 먼저 한 일은 패키지( apt install snap)를 설치한 후 차단되었다는 것을 깨달았습니다. 그래서 나는 지시를 따랐다.스냅크래프트 웹사이트, 삭제합니다 /etc/apt/preferences.d/nosnap.pref. 그런 다음 다시 설치하고( apt purge snap; apt install snap) 작동을 시작했습니다 snap install hello-world. 코어 스냅샷을 다운로드하고 이를 설치하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

error: cannot perform the following tasks:
- Mount snap "core" (10126) (cannot run unsquashfs: 
-----
Filesystem uses xz compression, this is unsupported by this version
Decompressors available:
    gzip
-----)

그래서 내가 갔어squashfs LZMA 웹 사이트, tarball을 다운로드하고 압축을 푼다.
실행하면 make다음 오류가 발생합니다.

cc -O2  -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"gzip\" -Wall -DGZIP_SUPPORT -DXZ_SUPPORT -DXATTR_SUPPORT -DXATTR_DEFAULT   -c -o mksquashfs.o mksquashfs.c
mksquashfs.c: In function 'create_inode':
mksquashfs.c:987:24: error: called object 'major' is not a function or function pointer
  987 |   unsigned int major = major(buf->st_rdev);
      |                        ^~~~~
mksquashfs.c:987:16: note: declared here
  987 |   unsigned int major = major(buf->st_rdev);
      |                ^~~~~
mksquashfs.c:988:24: error: called object 'minor' is not a function or function pointer
  988 |   unsigned int minor = minor(buf->st_rdev);
      |                        ^~~~~
mksquashfs.c:988:16: note: declared here
  988 |   unsigned int minor = minor(buf->st_rdev);
      |                ^~~~~
mksquashfs.c:1011:24: error: called object 'major' is not a function or function pointer
 1011 |   unsigned int major = major(buf->st_rdev);
      |                        ^~~~~
mksquashfs.c:1011:16: note: declared here
 1011 |   unsigned int major = major(buf->st_rdev);
      |                ^~~~~
mksquashfs.c:1012:24: error: called object 'minor' is not a function or function pointer
 1012 |   unsigned int minor = minor(buf->st_rdev);
      |                        ^~~~~
mksquashfs.c:1012:16: note: declared here
 1012 |   unsigned int minor = minor(buf->st_rdev);
      |                ^~~~~
mksquashfs.c: In function 'dir_scan2':
mksquashfs.c:3527:17: warning: implicit declaration of function 'makedev' [-Wimplicit-function-declaration]
 3527 |   buf.st_rdev = makedev(pseudo_ent->dev->major,
      |                 ^~~~~~~
make: *** [<builtin>: mksquashfs.o] Error 1

저는 C에 대해 잘 모르지만 .deb 패키지 같은 것을 찾을 수 있다면 좋을 것 같습니다. squashfs-tools를 다시 설치하고 스냅샷을 찍은 다음 재부팅을 시도했지만 효과가 없었습니다.

누군가 나에게 이것에 대한 조언을 줄 수 있습니까?

ps. 더 좋은 사이트 있으면 알려주세요.

답변1

sudo apt install liblzma-dev zlib1g-dev
git clone https://github.com/plougher/squashfs-tools.git
cd squashfs-tools
git checkout c570c6188811088b12ffdd9665487a2960c997a0
cd squashfs-tools
sed -i 's/#XZ_SUPPORT/XZ_SUPPORT/' Makefile
make -j$(nproc)
make install

관련 정보