Một ứng dụng trực tuyến là gì? Làm thế nào để tôi cài đặt nó?


231

Tôi vừa đọc Meet Etcher, Công cụ viết ảnh USB mã nguồn mở sành điệu . Nó nói về việc tải xuống một AppImage.

Vâng, 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.

Ứng dụng là gì? Làm thế nào để họ khác với snaps?


10
Tôi nghĩ rằng appimagethẻ có thể trở nên hữu ích, vì vậy tôi chỉ cần tạo ra nó. Trong trường hợp chúng ta 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.
Chỉ huy Byte

Câu trả lời:


283

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 cần quyền root.

Làm cho nó thực thi

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

chmod a+x exampleName.AppImage

Thực hiện nó

Bạn có thể thực thi một ứng dụng như sau:

./exampleName.AppImage

thông tin thêm

Giới thiệu về ứng dụng

Bạn có thể tìm thấy một số thông tin chung về appImage tại đâ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. Nói cách khác, mỗi AppImage không có phụ thuộc nào ngoà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 cho biết thêm

AppImage (và các phiên bản 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 các tệp ở khắp nơi trong hệ thống).

Nó sử dụng một tệp cho mỗi ứng dụng. Mỗi cái đều độc lập: nó bao gồm tất cả các thư viện mà ứng dụng phụ thuộc 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 tệp AppImage ngay cả khi họ không phải là siêu người dùng hoặc họ đang sử dụng CD trực tiếp. Các tệp AppImage thường đơn giản hơn so với biên dịch và cài đặt một ứng dụng, vì không có cài đặt nào thực sự diễn ra. Tệp AppImage là một hình ảnh nén được gắn tạm thời để cho phép truy cập vào 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 bên dưới.

Các README.mdcủa AppImageKit dự án cung cấp rất nhiều thông tin thêm như sử dụng các trường hợp , vấn đề không gianmục tiêu .

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

  • Là người dùng, tôi muốn đế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 của tôi giống như tôi làm với ứng dụng Windows hoặc Mac.

  • Là một người thử nghiệm, tôi muốn có được phiên bản mới nhất của một ứng dụng từ một máy chủ xây dựng liên tục và thử nghiệm nó trên hệ thống của mình, mà không cần phải 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 đưa nó vào một bản phân phối và không phải xây dựng cho 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ễ hiểu, dễ 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 dưới dạng AppImage nhằm tương thích nhị phân nhất có thể với càng nhiều hệ thống càng tốt. Cần phải giảm bớt (biên soạn lại) phần mềm.

  3. Được phân phối-bất khả tri.

    Một AppImage sẽ chạy trên tất cả các hệ điều hành cơ bản (bản phân phối) mà nó được tạo cho (và các phiên bản mới hơn). 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) cùng lúc mà không phải tạo và duy trì các gói riêng biệt cho từng hệ thống đích.

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

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

  5. Giữ các ứng dụng được nén mọi lúc.

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

  6. Cho phép đặt ứng dụng ở bất cứ đâu.

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

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

    Vì AppImages chỉ đọc theo thiết kế, người dùng có thể chắc chắn chắc chắn rằng ứng dụng không tự sửa đổi trong quá trình hoạt động.

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

    Các hình ảnh phải có thể được 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 giúp tăng tốc quá trình tạo AppImage rất nhiều, 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 dưới dạng AppImages. (Tuy nhiên, nó có thể có lợi cho các nhà phát triển ứng dụng ngược dòng để xây dựng từ nguồn đặc biệt cho mục đích tạo AppImage.)

  9. Giữ cho hệ điều hành cơ sở không bị ảnh hưởng.

    Vì AppImages dự định chạy trên các hệ thống đơn giản chưa được quản trị viên chuẩn bị đặc biệt, 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á nhân đặc biệt, mô-đun hạt nhân hoặc bất kỳ ứng dụng nào không đi kèm với các bản phân phối được nhắm mục tiêu theo mặc định.

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

    Vì AppImages được điều hành bởi người dùng cuối, họ không nên yêu cầu tài khoản quản trị (root) được cài đặt hoặc sử dụng. Tuy nhiên, chúng có thể được cài đặt bởi quản trị viên (ví dụ: trong các tình huống nhiều người dùng) nếu muốn.


4
Làm thế nào để một ứng dụng duy trì cài đặt giữa các lần khởi chạy?
Dan Dascalescu

1
Bạn có thể giải thích 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 như LiveCD?
vstepaniuk

2
@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 AskUbfox, không chỉ là một nhận xét. Bạn sẽ hỏi nó chứ?
Kurt Pfeifle

@vstepaniuk: Câu hỏi của bạn tương tự như của Dan. Một trong số các bạn nên hỏi nó như một câu hỏi "đầy đủ", không chỉ trong một bình luận ...
Kurt Pfeifle

1
@KurtPfeifle: vì bạn không muốn đi trước và tự hỏi nó ... :)
Dan Dascalescu

22

Ý 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 snaps và Appimages.

Một số "lớn" xuất hiện trong tâm trí của tôi là:

  1. An ninh , về mặt giam cầm . Các gói Snap chạy trong hộp cát và chúng không được phép thoát khỏi nó và tiếp cận các phần khác của hệ thống mà chúng không nên chạm vào. Đây là lớp bảo mật mạnh hơn chạy song song với hệ thống cấp phép. Rõ ràng là có một chút bực bội khi xử lý nó ngay từ đầu (và cả sau này), nhưng nếu bạn nghĩ về vấn đề 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 lấy từ khắp nơi trên mạng, an toàn như đi xung quanh liếm cực 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. Các gói Snap có kho lưu trữ thích hợp của chúng, được kiểm soát bởi Canonical, giống như các kho lưu trữ Ubuntu tiêu chuẩn thông thường. Bạn có thể tiếp tục và cài đặt .debcá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 "các tệp thực thi Windows di động". Tất cả các thư viện đều độc lập 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 những thư viện đó. Mặt khác, snapcác gói là các gói thích hợp và chúng cần được cài đặt (như root, hoặc với sudo) thông qua trình quản lý gói ứng dụng ( snap install tic-tac-toeđưa ra một lỗi: nó cần sudo!)

  4. Gỡ bỏ. Để xóa gói snap, 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, chúng chỉ là "ở đó". Vì vậy, bất kỳ người dùng không muốn Appimage đó? Anh ấy / cô ấy chỉ cần xóa các tập tin và nó đã biến mất.

Trong khi tôi thực sự khuyên bạn nên thận trọng khi sử dụng Appimages, cá nhân tôi tự mình sử dụng một số trong số họ.

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ó rootquyền truy cập (chỉ quản trị viên mới có) nhưng tôi cần phiên bản mới nhất của một phần mềm cụ thể, 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 tính thực sự có 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ì có thể.


2
Về cơ bản, mọi người đều cố gắng triển khai gói ứng dụng OSX trên linux, nhưng không có gì hoàn toàn ở đó.
OrangeDog

2
Tôi không biết làm thế nào nó hoạt động :) Chắc chắn snap và Appimages không hoạt động 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ó sẵn hoặc có một vài 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 cần được giải quyết trong các gói snap (một phần mềm phụ thuộc vào thư viện snap cài đặt thư viện đó với phiên bản đó, sau đó một phần mềm khác cần cùng phiên bản thư viện có thể sử dụng nó, như với hệ thống thông thường).
Dadexix86

Các ứng dụng OSX (và iOS) hoạt động như AppImage (chỉ tải xuống một tệp và chạy) nhưng với tính năng bảo mật nhanh chóng của hộp cát.
OrangeDog

OSX đang cố gắng loại bỏ những thứ 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 chúng ta sẽ thấy điều đó trong tương lai.
Royi

20

Trước khi bạn có thể chạy AppImage, bạn cần làm cho nó có thể thực thi được. Đâ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

Làm cách nào để thực thi AppImage

hoặc là

2. Trên dòng lệnh

chmod a+x Some.Appimage

Bây giờ bấm đúp vào tệp của bạn để chạy nó HOẶC Nhấp chuột phải> Chạy


15

Mặc dù snap chỉ tập trung vào Ubuntu, AppImage là phân phối chéo và cũng 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 cho người dùng Linux như 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ả ban đầu để tải xuống, ví dụ: MuseScore từ https://musescore.org/en/doad . Làm cho AppImage có thể thực thi được (bằng cách 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 chỉ bằng cách nhấp đúp.


Vậy nếu tôi muốn cài đặt Leafpad, tôi có nhấp vào "Thiết lập tôi" 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 xem 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ư mọi thứ khác mà bạn nghĩ người dùng có thể muốn biết.
DK Bose

2
Không chắc chắn liệu đó có phải là một giải pháp cho bạn hay không - nhưng leafpad có sẵn trong 16.04 nguồn ngoài hộp (phiên bản: 0.8.18.1). Phiên bản leafpad được cung cấp bởi bintray là 'chỉ' 0.8.17 - thậm chí còn cũ hơn.
dufte

1
Đúng, nhưng đối với ai đó chỉ muốn thử nghiệm vùng biển, thì nó giống như trang web nói, "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

5

Ứng dụng yêu cầu FUSE để chạy. Hệ thống tập tin trong không gian người dùng (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ó một thiết lập FUSE hoạt động bên ngoài. Tuy nhiên, nếu nó không hoạt động cho bạn, bạn có thể cần phải cài đặt và định 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 kết 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ó AppImage loại 2 thử nghiệm . Những yêu cầu bạn phải vượt qua -o offset=...để các mountlệnh. Chạy AppImage với --appimage-offsetđể tìm ra số chính xác cho phần bù.


Sau khi viết dòng thứ 3 ( sudo usermod -a -G fuse) theo sau là tên người dùng của tôi, tôi tiếp tục nhận được usermod: group 'fuse' does not exist... Có ai biết tại sao không?
Martin

Xin chào @Martin, Trong Ubuntu cho người cũ. nếu bạn đang cố chạy AppImage i686 (32 bit) trong hệ thống x86_64 (64 bit), bạn sẽ gặp lỗi đó trừ khi bạn đã cài đặt thư viện 32 bit. Bạn có thể nên chỉ định HĐH và ứng dụng bạn đang cố chạy lần sau để được hỗ trợ.
Leo

Xin chào @Leo, cách đây đã lâu, nhưng tôi mới nhập các sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERdòng trên Windows 10 64. Câu trả lời tôi nhận xét không tạo ra bất kỳ thông số 32/64 nào và tôi không biết tôi phải chỉ định điều đó ở đâu tại sao ...
Martin

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.