Câu hỏi Cách tạo ứng dụng gốc từ Shell Script?


Tôi đã tạo một ứng dụng nhỏ bằng cách sử dụng Bash và Zenity mà tôi muốn cài đặt trên hệ thống của tôi như một ứng dụng gốc cũng như một gói mà tôi có thể phân phối. Tôi có tệp .desktop cho ứng dụng của tôi, biểu tượng .png và tệp .sh. Các tệp này đi đâu để tạo một ứng dụng "bản địa", và theo quy trình nào tôi sẽ cần phải tạo một gói có thể được biên dịch để cài đặt ứng dụng này trên một hệ thống khác?


4
2018-02-23 05:59


gốc


Đây là một liên kết đến một tệp zip với tất cả các tệp cần thiết để chạy ứng dụng - đó là một bộ đếm thời gian trà đơn giản. :) Để chạy nó, chỉ cần chạy tập lệnh. Tệp .desktop có thể sẽ không hoạt động. dropbox.com/s/ya9futuiz33lian/GTeaKup.zip - Ryan McClure
Bạn coi lại chưa packaging.ubuntu.com/html/packaging-new-software.html ? - Radu Rădeanu


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


Về phần đầu tiên: Để bắt đầu, tôi sẽ làm cho tập lệnh thực thi và xóa .sh mở rộng từ cả tập lệnh và .desktop tập tin. Nếu bạn muốn sử dụng nó rộng, sau đó sao chép toàn bộ thư mục, ngoại trừ .desktop tập tin, để /opt. Các .desktop tệp sẽ là:

[Desktop Entry]
Version=1.0
Type=Application
Name=GTeaKup
Comment=The perfect GTK tea timer!
Exec=/bin/bash gteakup
Icon=gteacup.png
Path=/opt/GTeaKup/
Terminal=false
StartupNotify=false

... và sao chép nó vào /usr/share/applications

Khoảng nửa sau câu hỏi của bạn: hãy xem đây, đặc biệt cái này rất hay để bắt đầu nếu bạn chưa bao giờ tạo các gói Debian trước đây. Sau đó bạn sẽ nhận được một trình cài đặt như điều này. Khi bạn cài đặt nó thông qua trung tâm phần mềm, nó sẽ khiếu nại, bởi vì các tập tin thông thường như changelog, bản quyền vv tập tin không được bao gồm, nhưng nó hoạt động tốt.

btw bạn biết rằng kịch bản của bạn hoạt động khác nhau trên nhấp đúp và khi nút ok được chọn? ;)


3
2018-02-23 07:46



Những công việc này! Tôi chỉnh sửa quá trình một chút, và nó hoạt động! :) Tôi đang cố gắng (bây giờ) tạo ra một gói trung hòa có thể được biên dịch và cài đặt mà không cần một trình quản lý gói. Cuối cùng, tôi sẽ tạo một gói debian cho nó. Tôi hiện đang đấu tranh để tìm ra cách sửa kịch bản sao cho khi nút OK được chọn, menu lặp lại cho đến khi một tùy chọn được chọn. Có suy nghĩ gì không? - Ryan McClure
... Tôi sợ tôi không phải là một chuyên gia bash, nhưng trong python, tôi sẽ sử dụng vòng lặp while (trong khi câu trả lời không có trong [danh sách], hoặc trả lời! = (Không bằng) này hay câu hỏi lặp lại, khác: làm như sau). Điều này có giúp được: cyberciti.biz/faq/bash-while-loop ? - Jacob Vlijm


Bạn có thể sử dụng tập lệnh shell install.sh như được đưa ra dưới đây để cài đặt của bạn tea timer kịch bản cho một máy khác.

#!/bin/bash
install_dir="$HOME/teaKup"
current_dir="$(pwd)"
dpkg -s sox > /dev/null 2>&1
if [ $? = 0 ]; then
    mkdir $install_dir #create directory to place files.
    cp $current_dir/gteakup.sh $install_dir/ # copies the file.
    cp $current_dir/gteakup.png $install_dir/
    cp $current_dir/sound.ogg $install_dir/
    cat > $HOME/Desktop/GTeaKup.desktop << EOF # create desktop file at desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=GTeaKup
Comment=The perfect GTK tea timer!
Exec=bash $install_dir/gteakup.sh
Icon=$install_dir/gteakup.png
Terminal=false
StartupNotify=false
EOF
    chmod u+x $HOME/Desktop/GTeaKup.desktop  # give execution permission to desktop file.
else
    # ask user to install sox which is needed to use play command
    echo -e "The program 'play' is currently not installed.  You can install it by typing:\nsudo apt-get install sox"
fi

Chỉ dẫn

  • để nó ở đây install.sh cùng với các tệp khác trong zip tập tin. Không cần phải cung cấp .desktop tệp, tập lệnh sẽ tạo một tệp.
  • sao chép tệp zip vào các hệ thống khác và giải nén chúng.
  • chỉ cần chạy bash install.sh, nó sẽ chăm sóc phần còn lại bao gồm đối phó các tập tin ở những nơi thích hợp và sẽ làm cho một tập tin máy tính để bàn để chạy nó.

chú thích

Hãy cẩn thận với vị trí của EOF trong install.sh. Nó sẽ ở đầu dòng đó.


1
2018-02-23 09:22