سؤال كيفية إنشاء تطبيق أصلي من Shell Script؟


لقد قمت بإنشاء تطبيق صغير باستخدام Bash و Zenity الذي أرغب في تثبيته على نظامي كتطبيق محلي بالإضافة إلى حزمة يمكنني توزيعها. لدي ملف .desktop للتطبيق الخاص بي ، رمز .png ، وملف .sh. أين تذهب هذه الملفات لإنشاء تطبيق "أصلي" ، وما هي العملية التي سأحتاج إليها لإنشاء حزمة يمكن تجميعها لتثبيت هذا التطبيق على نظام آخر؟


4
2018-02-23 05:59


الأصل


هنا هو وصلة لملف مضغوط مع كل الملفات اللازمة لتشغيل التطبيق - انها بسيطة الموقت الشاي قليلا. :) لتشغيله ، ببساطة قم بتشغيل البرنامج النصي. ربما لن يعمل ملف .desktop. dropbox.com/s/ya9futuiz33lian/GTeaKup.zip - Ryan McClure
هل تحققت packaging.ubuntu.com/html/packaging-new-software.html ؟ - Radu Rădeanu


الأجوبة:


حول الجزء الأول: بادئ ذي بدء ، أود أن اجعل البرنامج النصي قابل للتنفيذ وإزالة .sh تمديد من البرنامج النصي و .desktop ملف. إذا كنت تريد استخدام النظام على نطاق واسع ، ثم نسخ الدليل بأكمله ، باستثناء .desktop الملف ، ل /opt. ال .desktop سيكون الملف ثم:

[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

... ونسخ ذلك إلى /usr/share/applications

حول النصف الثاني من سؤالك: ألقِ نظرة هنا، خصوصا هذا من الجيد أن تبدأ إذا لم تقم أبدًا بإنشاء حزم دبيان من قبل. سوف تحصل على مثل المثبت هذه. عند تثبيته عبر مركز البرامج ، سوف يشكو ، لأن الملفات المعتادة مثل ملفات التغيير ، حقوق التأليف والنشر الخ لا يتم تضمينها ، لكنها تعمل بشكل جيد.

راجع للشغل أنت تعرف أن السيناريو الخاص بك يعمل بشكل مختلف على انقر نقرا مزدوجا ، وعندما يتم اختيار الزر موافق؟ ؛)


3
2018-02-23 07:46



هذا يعمل! لقد قمت بتحرير العملية قليلاً ، وهي تعمل! :) أحاول (الآن) جعل حزمة distro-neutral التي يمكن تجميعها وتثبيتها دون مدير الحزمة. في النهاية ، سأقوم بإنشاء حزمة debian لها. أنا أقاتل حاليا لمعرفة كيفية إصلاح البرنامج النصي بحيث عندما يتم اختيار زر موافق ، تتكرر القائمة حتى يتم تحديد خيار. أي أفكار؟ - Ryan McClure
... أخشى أني لست متخصص باش ، ولكن في python ، كنت سأستخدم حلقة while (في حين أن الإجابة ليست في [list] ، أو الإجابة! = (لا تساوي) هذا أو ذاك ، كرر السؤال ، آخر: قم بما يلي). هل هذا يساعد: cyberciti.biz/faq/bash-while-loop ؟ - Jacob Vlijm


يمكنك استخدام برنامج نصي shell install.sh كما هو موضح أدناه لتثبيت tea timer النصي إلى جهاز آخر.

#!/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

تعليمات

  • ضع هذا install.sh جنبا إلى جنب مع الملفات الأخرى في zip ملف. لا حاجة لتقديم .desktop الملف ، النصي سيجعل واحدة.
  • انسخ ملف zip إلى أنظمة أخرى وفك ضغطه.
  • فقط ركض bash install.sh، وسوف تهتم بقية بما في ذلك التعامل مع الملفات في الأماكن المناسبة ، وسوف تجعل ملف سطح المكتب لتشغيله.

ملحوظة

كن حذرا مع موقف EOF في install.sh. يجب أن يكون في بداية هذا الخط.


1
2018-02-23 09:22