it-swarm-vi.com

Có cách nào đơn giản để cài đặt tarball không?

Hầu hết các phần mềm Linux được đóng gói trong tarball. Tất cả chúng đều yêu cầu nhưng một vài lệnh để biên dịch và cài đặt chúng.

Câu hỏi của tôi là; chúng tôi có gdebi cho các gói debian độc lập, vậy tại sao không phải là một ứng dụng để cài đặt tarball theo cùng một cách? Tại sao một quá trình rõ ràng đơn giản như vậy không tự động? Tại sao chúng ta phải tiếp tục đe dọa và xua đuổi người dùng mới với ý tưởng biên dịch phần mềm?

6
Dante Ashton

Các quy trình này được tự động. Bạn nhận được chúng trong các gói .deb hoặc .rpm là chủ yếu. Sự khác biệt duy nhất (ở cấp độ bạn đang nghĩ) giữa tarball và .deb là phần tổng hợp. Tarball thường chứa mã nguồn và tạo các tệp, không phải các tệp nhị phân được biên dịch trước (mặc dù đôi khi chúng cũng chứa các mã đó). .debs được biên dịch trước trên nhiều kiến ​​trúc.

Đây là một tương tự cho bạn:

một .deb là một chiếc xe tải chở toàn bộ xe.

Một tarball là một chiếc xe tải chở một hộp các bộ phận xe hơi và một hướng dẫn cho bạn biết làm thế nào để lắp ráp các bộ phận để có được chiếc xe.

Vì vậy, khi bạn cài đặt một cái gì đó từ một .deb (hoặc .rpm trên các bản phân phối "khác" đó), bạn sẽ cài đặt cùng một thứ bạn sẽ có trong tarball đó, chỉ với công việc đã hoàn thành cho bạn.

Mặc dù tôi không đồng ý với txwikinger về sự tiến triển/hồi quy. Không có gì sai với tarball và tôi thường xuyên sử dụng chúng để bọc mã hoặc ảnh chụp màn hình, tệp nhật ký hoặc những gì bạn phải gửi cho mọi người vì nhiều lý do. Tôi cũng tải xuống tarball nguồn để đọc mã nguồn cho một chương trình để tôi có thể thấy những gì đang xảy ra nếu tôi gặp vấn đề.

12
DreadPirateJeff

Thay vì dành thời gian để cài đặt tarball dễ dàng hơn, sẽ có lợi hơn nếu sử dụng nó để đóng gói phần mềm cho Debian/Ubuntu. Điều này không chỉ giúp tăng cường các dịch vụ phân phối dựa trên Debian như Ubuntu, mà còn cài đặt chính xác các phụ thuộc

5
Adam Collard

Checkinstall có thể tạo các cuộc tranh luận từ nguồn. (Nó cũng có thể tạo các gói RPM và slackeware)

Bạn chạy ./mình rồi

checkinstall -D 

để tạo một gói debian.

Tôi nghĩ rằng công cụ này chủ yếu nhằm cho phép bạn nâng cấp và gỡ bỏ phần mềm trên máy của chính bạn chứ không phải để tạo bản phân phối cho người khác - nhưng nếu bạn không có sự phụ thuộc phức tạp, thì nó nên làm những gì bạn muốn.

3
Robert Christie

tarball thường có khả năng tùy biến cao. mặc dù với 90% trong số đó bạn chỉ cần đi ./mình && thực hiện cài đặt, một số người khác yêu cầu tham số tùy chỉnh hoặc trong trường hợp xấu nhất họ sử dụng các bước khác nhau để ứng dụng.

imho như một người dùng bình thường, bạn không cần phải đối phó với tarball. bạn có thể nên kiểm tra xem nó có trong kho của ai đó không.

vấn đề với tarball (như một phương pháp cài đặt cho endusers) là: - nếu có sự cố xảy ra, bạn cần nhanh chóng hiểu biết về công nghệ để khắc phục nó - không nhất thiết phải tuân thủ cấu trúc thư mục của disto của bạn - không phải lúc nào cũng có thể dễ dàng gỡ cài đặt lại phần mềm.

cho câu hỏi thứ hai của bạn: có, quy trình này được tự động hóa với các gói nguồn debian hoặc gói nguồn vòng/phút. nhưng những thứ đó không có vấn đề gì và tôi nghĩ chúng chỉ có thể được mở trong gdebi. Tôi không chắc bạn biết, nhưng tarball là cách dễ nhất mà nhà phát triển có thể đưa mã của họ ra thế giới. bất kể họ có lỗi gì trong dự án của họ, chỉ cần Zip nguồn và tải lên --- đó là yêu cầu duy nhất tôi biết cho một tarball: nó phải chứa nguồn của một số ứng dụng và cuối cùng cung cấp một tập lệnh xây dựng.

vì vậy, mặc dù nó sẽ không hoạt động để sử dụng trực tiếp các tarball đó, tôi nghĩ rằng bạn đang chạm vào một vấn đề rất quan trọng ở đây: bao bì linux là một mớ hỗn độn. rất nhiều công việc ngay cả đối với một bản phân phối duy nhất và thực tế không thể cho một dự án nhỏ để duy trì các gói cho nhiều bản phân phối.

đã có (và vẫn còn) một loạt các dự án đã cố gắng hợp nhất bao bì trên các bản phát hành, nhưng afaik điều này chưa bao giờ đi đến đâu thực sự. ít nhất không có gì phổ biến như gói msi cho windows hoặc dmg trên mac.

tôi biết câu trả lời này phải thật đáng tiếc, nhưng nếu tôi đã bỏ lỡ một cuộc cách mạng gần đây hơn là những gì chúng ta đang mắc kẹt bây giờ.

3
hansi

Bạn có thể viết một tập lệnh bash nhỏ nếu bạn đang làm điều này rất nhiều ...

#!/bin/bash
FILE=$1
DIR="${FILE%.tar.gz}"
tar -xzf $1
cd $DIR
./configure
make
Sudo make install

Gọi nó là tarinstall (hoặc một cái gì đó), đặt nó vào đường dẫn của bạn và sau đó chỉ cần làm:

tarinstall thisnewpackage.tar.gz

Mặc dù tôi đồng ý rằng việc sử dụng một hệ thống đóng gói như .debs hoặc .rpms sẽ tốt hơn nhiều.

2
x3ja

Các ứng dụng khác nhau được viết bởi các nhà phát triển khác nhau với các tiêu chuẩn khác nhau. Nó sẽ là một nhiệm vụ rất khó khăn khi có một ứng dụng để cài đặt tất cả các tarball. Thay vào đó, chúng tôi có các cuộc tranh luận được sắp xếp sẵn. Tarball cũng cung cấp một vấn đề về sự phụ thuộc mà debian và các dẫn xuất đã cố định với apt và apt apt mà bên cạnh không thể đạt được chỉ với một tarball.

1
Nigel

Là một người dùng bình thường, có lẽ bạn không muốn đi xung quanh việc cài đặt tarball. Các nhóm Debian và Ubuntu dành rất nhiều thời gian để tùy chỉnh và xác minh các gói ngược dòng trước khi họ đưa chúng vào kho lưu trữ. Làm một gói là một mớ hỗn độn lớn của các phụ thuộc và các tập lệnh cài đặt cụ thể phân phối. Không có cách nào đơn giản để tự động hóa quá trình.

Tuy nhiên, nếu bạn là một lập trình viên hoặc bạn đang cố gắng đóng góp cho một dự án ngược dòng, cuối cùng bạn sẽ cần phải cài đặt tarball chính thức. Mặc dù không tự động, nhưng có một vài công cụ giúp thực hiện quy trình dễ dàng hơn.

Nếu bạn chỉ muốn vá một số lỗi trong chương trình bạn đã cài đặt, bạn có thể lấy mã nguồn bằng apt-get sourcepackagename và hack đi. Nếu bạn muốn gửi bản vá đó ngược dòng mặc dù nó tốt hơn nếu bạn bắt đầu với một tarball ngược dòng.

Hầu hết các dự án ngoài kia đang sử dụng autotools tự động hóa một số lượng lớn các quyết định thời gian biên dịch. Bạn thường có thể biết liệu một dự án có sử dụng autotools hay không vì có một kịch bản cấu hình trong thư mục. Nếu có, bạn có thể xây dựng và cài đặt gói bằng một dòng ./configure && make && make install. Trừ khi bạn đã xây dựng gói trước đó, có thể nó sẽ thất bại vì bạn đang thiếu một số phụ thuộc thời gian biên dịch.

Nếu gói bạn đang cố cài đặt đã có trong kho Ubuntu, bạn có thể lấy APT để tự động cài đặt tất cả các thư viện bạn cần để biên dịch tarball với apt-get build-deppackagename . Nếu không có phụ thuộc mới, đây thường là tất cả những gì bạn cần làm trước khi có thể biên dịch chương trình. Nếu nó không nằm trong kho Ubuntu mà bạn tự làm, hãy kiểm tra tài liệu của dự án để tìm hiểu xem nó cần gì.

Một vấn đề với thủ tục ./configure && make && make install là thường không có make uninstall. Có một chương trình gọi là checkinstall sẽ chạy make install cho bạn và đăng ký gói trong APT để bạn có thể gỡ cài đặt nó sau. checkinstall không phải lúc nào cũng hoạt động, và tùy thuộc vào mức độ quan trọng của gói bạn cài đặt đối với hệ thống, nó có thể rất nguy hiểm.

1
wm_eddie

Các gói .deb là các tarball với thông tin cần thiết để thực hiện quản lý gói thích hợp được thêm vào chúng.

Nếu bạn chỉ cài đặt một tarball, làm thế nào để bạn chắc chắn rằng tất cả các phụ thuộc được đáp ứng? Tất cả các thư viện cần thiết được cài đặt?

Làm thế nào để bạn muốn loại bỏ một gói được cài đặt chỉ bằng tarball?

Bạn mất tất cả các biện pháp bảo vệ mà quản lý gói dựa trên debian đưa ra và đặc biệt là giúp người dùng mới dễ dàng cài đặt phần mềm. Để giúp họ dễ dàng cài đặt tarball hơn vì chúng sẽ là một bước lùi, không phải là tiến bộ.

Điều này sang một bên, làm thế nào có thể

./configure && make && Sudo make install

được đơn giản hóa hơn nữa? (Nếu bạn xem xét một người dùng cần có khả năng giải quyết các vấn đề nêu trên)

0
txwikinger

Như trong các bài viết trên checkinstall sẽ giúp bạn cài đặt và hủy cài đặt ứng dụng nguồn một cách hiệu quả. Vì nó tạo ra các gói riêng (vòng/phút cho các hương vị redhat và deb cho các hương vị debian bao gồm cả Ubuntu), rất dễ dàng để quản lý các gói này với trình quản lý gói gốc như trung tâm phần mềm. Kiểm tra bài viết này để biết thêm thông tin: findasolution.in kiểm tra gói cài đặt quản lý được thực hiện dễ dàng trong linux . Nó ban đầu được trả lại cho Centos nhưng cũng sẽ hoạt động trong Ubuntu.

0
aneeshep