Câu hỏi "AppImage" là gì? Làm thế nào để cài đặt nó?


Tôi chỉ đọc Gặp gỡ Etcher, Công cụ tạo hình ảnh USB nguồn mở phong cách. Nó nói về việc tải xuống một AppImage.

Có, Linux; các gói Linux được phân phối dưới dạng .appimage cho các bản phân phối 32 bit và 64 bit và sẽ chạy trên tất cả các bản phân phối Linux chính mà không có bất kỳ vấn đề nào. Nhóm hiện không có kế hoạch cung cấp trình cài đặt .deb (hoặc .rpm) gốc.

AppImages là gì? Làm thế nào để chúng khác với snaps?


153
2018-05-19 04:11


gốc


Tôi nghĩ rằng appimage thẻ có thể trở nên hữu ích, vì vậy tôi vừa tạo nó. Trong trường hợp chúng tôi sẽ không cần hoặc muốn giữ nó, sẽ luôn có tùy chọn để đốt cháy nó một lần nữa anyway. - Byte Commander


Các câu trả lời:


Thông tin cơ bản

Về cài đặt

Tôi đang trích dẫn trang dự án appImage tại đây:

AppImages có thể được tải xuống và chạy mà không cần cài đặt hoặc nhu cầu   cho quyền root.

Làm cho nó thực thi

Bạn có thể làm cho tệp thực thi appImage như sau:

chmod a+x exampleName.AppImage

Thi hành nó

Bạn có thể thực hiện một appImage như sau:

./exampleName.AppImage

thông tin thêm

Giới thiệu về appImage

Bạn có thể tìm thấy một số thông tin chung về appImage đây.

Tôi đang trích dẫn trang dự án appImage tại đây:

Ý tưởng chính của định dạng AppImage là một ứng dụng = một tệp. Mỗi   AppImage chứa một ứng dụng và tất cả các tệp mà ứng dụng cần chạy. Trong   các từ khác, mỗi AppImage không có phụ thuộc khác với những gì   được bao gồm trong (các) hệ điều hành cơ sở được nhắm mục tiêu.

Wikipedia bổ sung

AppImage (và người tiền nhiệm klik và portablelinuxapps) không   cài đặt phần mềm theo nghĩa truyền thống (nghĩa là, nó không đặt tệp   khắp nơi trong hệ thống).

Nó sử dụng một tập tin cho mỗi ứng dụng.   Mỗi một là độc lập: nó bao gồm tất cả các thư viện ứng dụng   phụ thuộc vào và đó không phải là một phần của hệ thống cơ sở. Về vấn đề này,   nó tương tự như "ảo hóa ứng dụng". Người ta có thể sử dụng AppImage   tệp ngay cả khi chúng không phải là siêu người dùng hoặc họ đang sử dụng CD trực tiếp.   Tệp AppImage thường đơn giản hơn việc biên dịch và cài đặt   ứng dụng, vì không có cài đặt nào thực sự xảy ra. Tệp AppImage   là hình ảnh được nén tạm thời được gắn để cho phép truy cập   chương trình, nhưng không phải trích xuất chương trình hoặc sửa đổi   hệ thống cơ bản.

Các README.md của Dự án AppImageKit cung cấp nhiều thông tin bổ sung như Trường hợp sử dụng, không gian vấn đề và mục tiêu.

Trường hợp sử dụng

  • Với tư cách là người dùng, tôi muốn đi đến trang tải xuống ngược dòng, tải xuống ứng dụng từ tác giả gốc và chạy nó trên hệ thống máy tính để bàn Linux giống như tôi làm với ứng dụng Windows hoặc Mac.

  • Là người thử nghiệm, tôi muốn có thể nhận phiên bản mới nhất của ứng dụng từ máy chủ tạo liên tục và thử nghiệm trên hệ thống của mình mà không cần biên dịch và không phải lo lắng rằng tôi có thể làm hỏng hệ thống của mình.

  • Là một tác giả ứng dụng hoặc ISV, tôi muốn cung cấp các gói cho các hệ thống máy tính để bàn Linux giống như tôi làm cho Windows và OS X, mà không cần phải phân phối nó thành một bản phân phối và không phải xây dựng các gazillions của các bản phân phối khác nhau.

Mục tiêu

  1. Hãy đơn giản.

    AppImage được dự định là một định dạng rất đơn giản dễ dàng   hiểu, tạo và quản lý.

  2. Duy trì khả năng tương thích nhị phân.

    AppImage là một định dạng để phân phối phần mềm nhị phân. Phần mềm   được đóng gói như AppImage được dự định là tương thích nhị phân như   có thể với càng nhiều hệ thống càng tốt. Sự cần thiết cho   (lại) biên dịch phần mềm nên được giảm đáng kể.

  3. Hãy phân phối-agostic.

    AppImage sẽ chạy trên tất cả các hệ điều hành cơ sở (bản phân phối)   nó đã được tạo cho (và các phiên bản sau này). Ví dụ: bạn có thể   nhắm mục tiêu Ubuntu 9.10, openSUSE 11.2 và Fedora 13 (và các phiên bản mới hơn)   đồng thời, không phải tạo và duy trì riêng biệt   gói cho mỗi hệ thống đích.

  4. Loại bỏ sự cần thiết phải cài đặt.

    AppImages chứa ứng dụng ở định dạng cho phép ứng dụng chạy trực tiếp   từ kho lưu trữ mà không cần cài đặt trước. Đây là   so sánh với Live CD. Trước Live CD, hệ điều hành phải là   cài đặt trước khi chúng có thể được sử dụng.

  5. Giữ ứng dụng luôn được nén.

    Vì ứng dụng vẫn được đóng gói mọi lúc, nó không bao giờ   không nén trên đĩa cứng. Máy tính giải nén   ứng dụng khi đang truy cập. Kể từ khi giải nén là   nhanh hơn việc đọc từ đĩa cứng trên hầu hết các hệ thống, điều này có tốc độ   lợi thế ngoài việc tiết kiệm không gian. Ngoài ra, thời gian cần thiết cho   cài đặt hoàn toàn bị xóa.

  6. Cho phép đặt ứng dụng ở mọi nơi.

    AppImages là "relocatable", do đó cho phép người dùng lưu trữ và   thực hiện chúng từ bất kỳ vị trí nào (bao gồm CD-ROM, DVD, có thể tháo rời   đĩa, thanh USB).

  7. Làm cho ứng dụng chỉ đọc.

    Vì AppImages chỉ đọc theo thiết kế, người dùng có thể hợp lý   chắc chắn rằng một ứng dụng không tự sửa đổi trong khi hoạt động.

  8. Không yêu cầu biên dịch lại.

    AppImages phải có khả năng tạo từ các tệp nhị phân đã tồn tại,   mà không cần biên dịch lại. Điều này làm tăng tốc độ   Quá trình tạo AppImage, vì không có trình biên dịch nào phải tham gia. Điều này   cũng cho phép các bên thứ ba đóng gói các ứng dụng nguồn đóng như   AppImages. (Tuy nhiên, nó có thể có lợi cho thượng lưu   các nhà phát triển ứng dụng xây dựng từ nguồn cụ thể cho   mục đích tạo ra một AppImage.)

  9. Giữ nguyên hệ điều hành cơ bản.

    Vì AppImages được thiết kế để chạy trên các hệ thống đơn giản mà không   được quản trị viên đặc biệt chuẩn bị, AppImages có thể không yêu cầu   bất kỳ sự chuẩn bị bất thường nào của hệ điều hành cơ sở. Do đó, họ   không thể dựa vào các bản vá hạt nhân đặc biệt, các mô-đun hạt nhân, hoặc bất kỳ   các ứng dụng không đi kèm với các bản phân phối được nhắm mục tiêu   mặc định.

  10. Không yêu cầu root.

    Vì AppImages được dự định sẽ do người dùng cuối điều hành nên họ không nên   reqiure một tài khoản quản trị (root) được cài đặt hoặc sử dụng. Họ   tuy nhiên, có thể được quản trị viên cài đặt (ví dụ: trong nhiều người dùng   kịch bản) nếu muốn.


204
2018-05-19 06:07



Có lẽ cơ sở thực tế Q / A nên ở trên lời giải thích? - UniversallyUniqueID
Làm thế nào để một appimage duy trì cài đặt giữa các lần khởi chạy? - Dan Dascalescu
Bạn có thể xây dựng một chút về tính năng "chỉ đọc" không? Tôi có thể lưu các thay đổi bên trong AppImage không? Hoặc nó mất chúng gần giống như LiveCD? - vstepaniuk
@DanDascalescu: Câu hỏi của bạn xứng đáng được nâng lên thành một câu hỏi đầy đủ trên AskUbuntu, không chỉ là một bình luận. Bạn sẽ hỏi nó? - Kurt Pfeifle
@KurtPfeifle: vì bạn không muốn tiếp tục và tự hỏi ... :) - Dan Dascalescu


Ý tưởng cơ bản có thể trông giống nhau giữa hai hệ thống, nhưng có một số khác biệt về thiết kế giữa các lần chụp và các hình ảnh.

Một số "lớn" những người đến với tâm trí của tôi là:

  1. Bảo vệ, về mặt giam giữ. Snap gói chạy trong một sandbox và họ không được phép thoát khỏi nó và đạt được các phần khác của hệ thống mà họ nên không phải chạm. Đây là lớp bảo mật mạnh hơn chạy song song với hệ thống quyền. Rõ ràng nó hơi bực bội khi giao tiếp với nó ngay từ đầu (và sau này), nhưng nếu bạn nghĩ về nó về quản trị hệ thống, đây là điều mà quản trị viên muốn cho người dùng của họ.

  2. Bảo vệ. Cài đặt phần mềm được thực hiện từ khắp nơi trên mạng, an toàn như việc đi vòng quanh cột điện trên đường phố. Đôi khi không có gì xảy ra, đôi khi bạn nhận được một số vấn đề sức khỏe rất lớn. Snap gói có kho lưu trữ thích hợp của họ, được kiểm soát bởi Canonical, giống như các kho thông thường Ubuntu tiêu chuẩn. Bạn có thể tiếp tục và cài đặt .deb các tệp từ xung quanh, nhưng đó sẽ là lựa chọn của bạn và không phải là vấn đề thiết kế.

  3. Cài đặt. AppImages có nghĩa là tương đương với "thực thi Windows di động". Tất cả các thư viện là khép kín và bất kỳ người dùng nào cũng có thể tải xuống và thực thi một trong các thư viện đó. Mặt khác, snap các gói là các gói thích hợp và chúng cần phải được cài đặt (như root, Hoặc với sudo) thông qua trình quản lý gói apposite (snap install tic-tac-toe ném một lỗi: nó cần sudo!)

  4. Gỡ bỏ. Để xóa gói chụp, bạn cần sử dụng trình quản lý gói snap remove ... với quyền phù hợp để làm như vậy. Mặt khác, hình dạng, chúng chỉ là "ở đó". Vì vậy, bất kỳ người dùng nào không muốn Appimage đó? Anh ấy / cô ấy chỉ xóa tệp và nó đã biến mất.

Trong khi tôi mạnh mẽ đề nghị thận trọng khi sử dụng Appimages, cá nhân tôi sử dụng một số người trong số họ bản thân mình.

Tôi thấy chúng đặc biệt hữu ích trên hệ thống làm việc của tôi, nơi tôi không có root truy cập (chỉ có quản trị viên có điều đó) nhưng tôi cần phiên bản mới nhất của một phần mềm cụ thể mà, may mắn thay, nhà phát triển đã cung cấp ở dạng Appimage.

Tôi hơi sợ rằng một số mã độc ác thực sự được chứa trong chúng, vì vậy tôi đã kiểm tra càng nhiều càng tốt danh tính của nhà xuất bản. Tôi không chắc chắn 100% rằng phần mềm này là lành tính, nhưng tôi đã làm tất cả những gì tôi có thể.


20
2018-05-19 07:59



Về cơ bản, tất cả mọi người đang cố gắng để thực hiện bao bì ứng dụng OSX trên Linux, nhưng không có gì khá được ở đó. - OrangeDog
Tôi không có ý tưởng về cách hoạt động :) Để chắc chắn snap và Appimages không làm việc tốt với phần mềm với nhiều phụ thuộc được chia sẻ giữa nhiều phần mềm khác. Chúng hoàn toàn ổn với phần mềm độc lập hoặc có ít phụ thuộc, nhưng rủi ro là có nhiều bản sao của cùng một thư viện thực hiện cùng một nhiệm vụ, như trong Windows. Điều này sẽ được giải quyết trong các gói snap (một phần mềm phụ thuộc vào cài đặt thư viện snap thư viện với phiên bản đó, sau đó một phần mềm cần phiên bản thư viện tương tự có thể sử dụng nó, giống như với hệ thống thông thường). - dadexix86
Các ứng dụng OSX (và iOS) hoạt động giống như AppImage (chỉ cần tải xuống một tệp và chạy) nhưng với tính năng bảo mật của hộp cát. - OrangeDog
OSX đang cố gắng loại bỏ những điều này và chỉ cho phép cài đặt từ cửa hàng của họ. - LtWorf
AppImage thực sự nên chứa tùy chọn cho Sand Boxing. Hy vọng rằng chúng ta sẽ thấy điều đó trong tương lai. - Royi


Trong khi snap chỉ tập trung vào Ubuntu, AppImage phân phối chéo và chạy trên Fedora, debian, openSUSE, CentOS, v.v.

AppImage không cần thời gian chạy hoặc hỗ trợ cơ sở hạ tầng từ bản phân phối Linux và do đó chạy bên cạnh mọi nơi. Nó cho phép các tác giả ứng dụng gửi phần mềm của họ trực tiếp tới người dùng Linux như việc làm cho Windows và OS X; không có Canonical hoặc bất kỳ ai khác "ở giữa" tác giả phần mềm và người dùng cuối.

Nếu một ứng dụng được cung cấp ở định dạng AppImage, thì người dùng có thể truy cập trang web của tác giả gốc để tải xuống, ví dụ: MuseScore từ https://musescore.org/en/download. Làm cho tệp thực thi AppImage (sử dụng trình quản lý tệp của bạn hoặc chmod a+x ./yourAppImage), sau đó bạn có thể chạy ứng dụng đơn giản bằng cách nhấp đúp.


15
2018-05-19 06:24



Vì vậy, nếu tôi muốn cài đặt Leafpad, tôi có nhấp vào "Set me up" không? Điều gì sẽ xảy ra sau đó? Và làm cách nào tôi có thể gỡ cài đặt AppImage? tôi đang nhìn vào bintray.com/probono/AppImages nhưng không tìm thấy câu trả lời. Nếu bạn không phiền, bạn có thể chỉnh sửa câu trả lời của mình để bao gồm thông tin cũng như bất kỳ thông tin nào khác mà bạn cho rằng người dùng có thể muốn biết. - DK Bose
Không chắc chắn nếu đó sẽ là một giải pháp cho bạn là tốt - nhưng leafpad có sẵn trong 16.04 nguồn ra khỏi hộp (phiên bản: 0.8.18.1). Các phiên bản leafpad được cung cấp bởi bintray là 'chỉ' 0.8.17 - vì vậy thậm chí cũ hơn. - dufte
Đúng, nhưng đối với một người chỉ muốn thử nghiệm vùng biển, nó giống như trang web nói, một loại điều "Xin chào, Thế giới". - DK Bose
Xuất sắc. Sau này, bạn có thể chỉ cần nhấp đúp chuột. Đó là những gì tôi cần! - Dawoodjee


Trước khi bạn có thể chạy một AppImage, bạn cần phải thực hiện nó. Đây là một tính năng bảo mật của Linux. Có hai cách chính để thực thi AppImage:

1. Sử dụng GUI

How to make an AppImage executable

hoặc là

2. Trên dòng lệnh

chmod a+x Some.Appimage

Giờ hãy nhấp đúp vào tệp của bạn để chạy tệp HOẶC Nhấp chuột phải> Chạy


11
2017-10-10 02:01





AppImages yêu cầu FUSE chạy. Hệ thống tập tin trong Userspace (FUSE) là một hệ thống cho phép người dùng không root gắn kết hệ thống tập tin.

Cài đặt cầu chì

Nhiều bản phân phối có thiết lập FUSE đang hoạt động ngoài hộp. Tuy nhiên nếu nó không làm việc cho bạn, bạn có thể cần phải cài đặt và cấu hình FUSE theo cách thủ công.

Ví dụ, trên Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

Ví dụ, trên openSUSE:

sudo zypper install fuse

Dự phòng

Nếu bạn không muốn cài đặt FUSE, bạn có thể gắn hoặc giải nén AppImage.

Để gắn AppImage và chạy ứng dụng, chỉ cần chạy

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

Nếu điều đó không hiệu quả, bạn có thể có một thử nghiệm loại 2 AppImage. Những yêu cầu bạn vượt qua -o offset=... đến mount chỉ huy. Chạy AppImage với --appimage-offset để tìm ra số chính xác cho phần bù.


3
2017-10-13 15:06