Điểm:5

Làm cách nào để tạo ứng dụng máy tính để bàn cho Trung tâm phần mềm Ubuntu?

lá cờ kr

Tôi muốn phát triển các ứng dụng máy tính để bàn cho Ubuntu và đẩy chúng lên Trung tâm phần mềm Ubuntu.

Tôi đã tìm kiếm trên toàn bộ internet nhưng không thể tìm thấy bất kỳ bài viết hoặc blog phù hợp nào về chủ đề này. Tôi đã nghĩ đến việc sử dụng "nhanh chóng" nhưng có vẻ như gói này không được dùng nữa. Ai đó có thể gợi ý cho tôi nền tảng nào tôi nên sử dụng và thiết lập tôi yêu cầu không? Cảm ơn trước.

Điểm:6
lá cờ cn

Không có nền tảng phát triển hoặc thiết lập "chính thức" nào cho Ubuntu. Sử dụng những gì làm việc tốt nhất cho bạn. Nếu bạn đặt tên cho một ngôn ngữ lập trình hoặc IDE phổ biến, thì ai đó sẽ phát triển cho Linux bằng ngôn ngữ đó. Sử dụng bất kỳ nền tảng hoặc thiết lập nào bạn thích, mặc dù bạn có thể thấy rằng việc phát triển ứng dụng chào thế giới đầu tiên của mình trên Ubuntu giúp phần mềm của bạn dễ kiểm tra hơn.

Có hai cách để đóng gói phần mềm của bạn và đẩy nó vào kho Phần mềm Ubuntu: Các gói Deb và gói Snap. Nếu bạn không chắc nên chọn cái nào, thì hãy thử cả hai.

gói nợ sử dụng một tiêu chuẩn do Debian ban hành. Nó cũ hơn và phức tạp hơn Snaps, nhưng dễ bảo trì và không có bất kỳ hộp đen nào. Các gói Debian chia sẻ các phần phụ thuộc chung trong hệ thống cài đặt, vì vậy gói này phải được xây dựng lại cho các bản phát hành mới...nhưng trang trại xây dựng Debian làm công việc đó. Bạn đóng góp mã có thể xây dựng của mình cho Debian, và các gói sẽ tìm đường xuống dòng một cách thần kỳ cho tất cả các bản phân phối dựa trên Debian, bao gồm cả bản phát hành Ubuntu trong tương lai.

gói chụp mới hơn, đa nền tảng, thường an toàn hơn và có cấu hình bên trong phức tạp hơn. Snaps bao gồm tất cả các phụ thuộc, vì vậy có xu hướng có kích thước gói lớn hơn. Bạn chạy ứng dụng ma thuật Snapcraft để đóng gói và tải lên. Sau khi Snap của bạn được Mighty Guardians Of The Snap Store chấp thuận, nó sẽ xuất hiện trong Phần mềm Ubuntu ngay lập tức. Snaps có thể được cập nhật (bởi bạn) bất cứ lúc nào và những cập nhật đó không liên quan đến các cập nhật hệ thống cơ bản (vì không có phần phụ thuộc nào được chia sẻ).

Nate T avatar
lá cờ it
Tôi không nhận ra rằng các gói snap không ở định dạng .deb. Mặc dù vậy, có ý nghĩa, vì họ có gói mgmt. hệ thống. Nếu họ biết rằng họ sẽ không đi theo con đường dpkg, thì tại sao lại tự đóng hộp bằng cách cố gắng phát triển sang định dạng của người khác. Tôi đoán lẽ ra tôi nên biết, vì Snap có sẵn cho rất nhiều bản phân phối không phải Debian; Tôi đoán tôi chưa bao giờ làm toán.
Điểm:5
lá cờ it

~Tl;dr~

Nếu ứng dụng của bạn được Snap chấp nhận/thêm vào, tức là bạn có thể nhập:

sudo snap cài đặt --options myappname

...để cài đặt ứng dụng của bạn, ứng dụng sẽ nằm trong "Cửa hàng Snap/Trung tâm phần mềm". Họ là một và giống nhau.

~Chi tiết~

Để thêm một ứng dụng vào (các) trung tâm phần mềm, trước hết, ứng dụng đó phải là một gói .deb. Để nó được cài đặt đúng vào hệ điều hành Ubuntu, nó phải là một gói Debian. Tôi tin rằng điều này được thực hiện trong một vài bước, bước đầu tiên liên quan đến công cụ tự động.

Tiêu chuẩn được giám sát bởi GNU. Cái này hướng dẫn sẽ cho bạn biết mọi thứ mà bạn cần biết.

Đối với việc đưa gói .deb của bạn đến "Trung tâm phần mềm", trước tiên, điều quan trọng là phải biết rằng, đối với một số phiên bản Ubuntu mới nhất, "Trung tâm phần mềm" chỉ là bình phong cho cửa hàng snap.Mọi ứng dụng bạn tải xuống ở đó đều xuất hiện nhanh chóng.

Vì vậy, thông tin mà bạn cần tìm kiếm là "làm thế nào để tải ứng dụng của tôi trong tích tắc." Đây là một nguồn tài nguyên tuyệt vời về chủ đề này.

Đối với ngôn ngữ mà bạn cần viết nó, nó không thực sự quan trọng, ít nhất là trong bối cảnh này. Theo truyền thống, hầu hết đều được viết bằng C, nhưng người ta có thể tìm thấy một gói ngoài đó có chứa bất kỳ kết hợp nào dưới ánh mặt trời.

Chắc chắn, gói sẽ cần phải chạy được trong môi trường đích, nhưng gói là một loại thùng chứa, vì vậy bạn chỉ cần đưa môi trường của riêng mình vào bên trong gói đó.

Nếu bạn xây dựng bằng Python, tại sao không chỉ xây dựng trên môi trường ảo và đóng gói toàn bộ thứ chết tiệt này? Bằng cách đó, nó chạy trên cùng một trình thông dịch mỗi lần. Tương tự với Java và JVM, C/C++ và GCC, v.v.

Bạn cũng bao gồm mọi phụ thuộc mà ứng dụng của bạn cần. Điều này không chỉ bao gồm các phụ thuộc thời gian chạy mà cả các trình cài đặt, v.v. Đây thường chỉ là các tập lệnh Bash, nhưng một lần nữa, ngôn ngữ không thành vấn đề.

Thành thật mà nói, những gì bên trong gói đã được chuẩn hóa (bạn sẽ cần một loại giấy phép nguồn mở nào đó, v.v.), nhưng tất cả những gì hệ thống debian quan tâm là giao diện. Dpkg cần biết điều gì đang xảy ra khi cài đặt. Miễn là nó được đưa ra các hướng dẫn rõ ràng dễ hiểu để nó biết đặt mọi thứ ở đâu và kết quả là một hệ thống ứng dụng hoạt động như người dùng mong đợi, thì bạn có một gói .deb hợp lệ.

Điều đó nói rằng, nếu bạn muốn có một gói Snap hợp lệ, tôi có thể đảm bảo rằng các hạn chế của bạn sẽ chặt chẽ hơn một chút. Tốt nhất là tuân theo các tiêu chuẩn mà tôi đã liên kết ngay từ đầu.

CHỈNH SỬA

Gần đây tôi đã tìm thấy một vài tài nguyên trên Github giúp tự động hóa quy trình xây dựng và xuất bản cho snaps. Cả hai đều là hành động github được duy trì bởi Snapcraft. Với sự kết hợp của những điều này, bất kỳ ứng dụng tương thích nào cũng có thể được chuyển thành một bản chụp được xuất bản.

Chúng được đặt đây (trình tạo snap) và đây (nhà xuất bản snap).

Mj Dev avatar
lá cờ kr
Tôi chắc chắn sẽ cố gắng và trở lại. Cảm ơn bạn
Mj Dev avatar
lá cờ kr
Điều này thực sự hoạt động như sự quyến rũ. Cảm ơn ngài.
Điểm:0
lá cờ in

Tôi nghĩ rằng bạn có thể dễ dàng tạo các ứng dụng máy tính để bàn GUI trên Ubuntu và các hệ điều hành dựa trên linux khác với qt ide. đó là một phạm vi tiếp cận và thân thiện với người dùng với các công cụ tuyệt vời để thiết kế phần mềm linux gui.

Mj Dev avatar
lá cờ kr
Thật ra tôi đã thử nó rồi, nhưng hãy để tôi thử lại. Cảm ơn bạn

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.