Cách giải quyết tar tar: lỗi ma thuật không hợp lệ trên Linux Alpine


22

Tôi đang cài đặt sqlite trên Alpine Linux. Tôi tải xuống sqlite-autoconf-3130000.tar.gznhưng tarkhông thể mở nó. Tôi đã thử câu trả lời này nhưng nó không hoạt động. tarđưa ra thông điệp này:

tar: invalid magic
tar: short read

Tôi đã viết những lệnh này.

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz

Bạn có thể vui lòng cập nhật câu trả lời của bạn bằng lệnh (và các đối số của nó) mà bạn đã cố chạy không.
DarkHeart

1
Quá trình tải xuống đã hoàn tất thành công? Nếu có, ls -l sqlite-autoconf-3090100.tar.gzsẽ cho bạn biết rằng tệp có kích thước 2284128 byte.
Stephen Kitt

Ngoài ra, nó hiện là một tập tin định dạng gzip? Một số trình duyệt thực hiện giải nén nhanh, có nghĩa là nó vẫn có thể được đặt tên là sqlite-autoconf-3090100.tar.gz nhưng nội dung thực sự có thể là sqlite-autoconf-3090100.tar. Không có ý tưởng nếu wget làm những điều thông minh như nhau, nhưng nó dễ dàng được kiểm tra bằng cách để lại zcờ từ tar.
Hennes

Câu trả lời:


21

Cố gắng cài đặt gói tar (apk thêm tar). Busybox tar (mặc định) không hỗ trợ tất cả các tính năng.


3
Tôi gặp vấn đề tương tự khi chạy lệnh tar trong Dockerfile và cài đặt tar làm việc cho tôi. Thật khó hiểu vì nếu bạn chạy lệnh trong shell trong container, nó sẽ hoạt động. Nhưng không, nếu đó là lệnh RUN trong Dockerfile mà không cài đặt tar trước. : |
3cheesewheel

7

Điều này không nhất thiết có nghĩa là phiên bản Alps tarkhông tương thích, vì Francesco đã chỉ ra rằng bạn thực sự nên kiểm tra tổng kiểm tra tệp của mình.

Tôi đã gặp phải điều này trong khi thực hiện một curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzfDockerfile của mình.

Hóa ra điều tôi đã quên là curlsẽ chỉ đi theo chuyển hướng nếu bạn cho phép -L, và vì vậy nó không bao giờ được vào tập tin thực sự, nó thực sự đang tải xuống html nói rằng nó có một chuyển hướng. Việc thêm -Lcho phép tôi lưu tệp mà không làm đầy thùng chứa của tôi bằng một cái mới tar(ngoài "sự phình to" được thêm bởi curl).


0

tar: phép thuật không hợp lệ có nghĩa là tệp bị hỏng.

Vui lòng kiểm tra md5sum nếu phù hợp ... đây là những gì tôi nhận được:

 md5sum  sqlite-autoconf-3090100.tar.gz 
 74931054399a2d7acf35637efe8d6f45  sqlite-autoconf-3090100.tar.gz

0

Tôi đã có cùng một vấn đề và giải quyết nó, tuy nhiên tôi không chắc bạn đang đối mặt với cùng một vấn đề.

gây ra lỗi :

wget www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Mã đã giải quyết nó:

wget https://www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Lưu ý rằng tôi đã quên "https: //" trong đó tệp đã được tải xuống nhưng tar cho tôi lỗi tương tự. Nếu không tìm thấy tệp, hãy chắc chắn rằng bạn sử dụng

xây dựng docker - không-cache ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.