Celestia: AppImage, upaya pertama - tutorial kecil

Dibuat pada 2 Agu 2019  ·  28Komentar  ·  Sumber: CelestiaProject/Celestia

AppImages kembali ke OBS.

misalnya.

$ mkdir ~/AppImage
$ cd ~/AppImage

1.7.0-git

$ wget -O celestia-1.7.0-git-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage

buat direktori $HOME portabel yang bergantung pada versi utama di folder yang sama dengan file AppImage

$ mkdir celestia-1.7.home

mulai Celestia / dapatkan bantuan (nama file dapat berubah setelah pembaruan)

$ ./celestia-1.7.0-git-x86_64.AppImage
$ ./celestia-1.7.0-git-x86_64.AppImage -h

1.6.2

$ wget -O celestia-1.6.2-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage

buat direktori $HOME portabel yang bergantung pada versi utama di folder yang sama dengan file AppImage

$ mkdir celestia-1.6.home

mulai Celestia / dapatkan bantuan (nama file dapat berubah setelah pembaruan)

$ ./celestia-1.6.2-x86_64.AppImage
$ ./celestia-1.6.2-x86_64.AppImage -h

Opsional: Pembaruan melalui AppImageUpdate

$ wget https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
$ chmod 755 *.AppImage

secara opsional buat direktori $HOME portabel di folder yang sama dengan file AppImage

$ mkdir AppImageUpdate-x86_64.AppImage.home

Opsional: Impor kunci publik gpg (gpg2 harus diinstal)

$ wget -O obs-munix9.pub https://build.opensuse.org/projects/home:munix9/public_key

global (tanpa $HOME portabel untuk AppImageUpdate)

$ gpg2 --import obs-munix9.pub

hanya untuk AppImageUpdate ($HOME portabel, lihat di atas)

$ HOME=~/AppImage/AppImageUpdate-x86_64.AppImage.home gpg2 --import obs-munix9.pub


barang lama

Membangun sistem:

  • openSUSE Leap 42,3 x86_64

Sistem pengujian:

  • [x] Ubuntu 18.04.2 amd64 (VM)
  • [x] Xubuntu 18.04
  • [x] openSUSE Tumbleweed

Versi: celestia-qt, git master (dengan tambahan hacks/patch dan spice diaktifkan)

Lingkungan pengujian AppImage sekarang telah dipindahkan dari OBS ke github/travis-ci
https://github.com/munix9/Celestia (cabang appimage_build)

Pembaruan sekarang harus dimungkinkan melalui https://github.com/AppImage/AppImageUpdate

Bagaimana caranya?

buat direktori kerja (bersifat arbitrer, dapat dipindahkan atau diganti namanya nanti)

$ mkdir ~/celestia-app
$ cd ~/celestia-app

unduh file AppImage dari https://github.com/munix9/Celestia/releases (Pembuatan berkelanjutan)

$ wget https://github.com/munix9/Celestia/releases/download/continuous/celestia-qt-continuous-x86_64.AppImage

dan membuatnya dapat dieksekusi

$ chmod 755 celestia-qt-continuous-x86_64.AppImage

buat folder rumah portabel untuk digunakan sebagai $HOME

$ ./celestia-qt-continuous-x86_64.AppImage --appimage-portable-home

Petunjuk: Sekarang ada alternatif untuk direktori $HOME portabel. Jika direktori yang dapat ditulisi bernama celestia-qt.home ada di folder yang sama dengan AppImage, direktori ini didefinisikan sebagai $HOME portabel.
Ini akan membuatnya lebih mudah untuk menangani nama AppImage yang berbeda setelah pembaruan.


berani memulai pertama

$ ./celestia-qt-continuous-x86_64.AppImage

Pemecahan masalah, umum


"Kesalahan Menyimpan Bookmark" "Sistem file hanya-baca" saat keluar - terpecahkan (#335)

$ mkdir -m 700 ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.config

Pemecahan masalah, Ubuntu 18.04.2


(celestia-qt:...): PERINGATAN Gtk **: ...: Tidak dapat menemukan mesin tema di module_path: "murrine", - terpecahkan, seharusnya tidak terjadi lagi

instal pertama gtk2-engines-murrine

$ sudo apt-get install gtk2-engines-murrine

solusi dengan menambahkan GTK_PATH64 env var saat AppImage dimulai

$ GTK_PATH64=$GTK_PATH64:/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/ ./celestia-qt-continuous-x86_64.AppImage

atau dengan membuat tautan simbolis

$ mkdir -p ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines
$ ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/libmurrine.so ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines/

Menggunakan folder celestia-data individu

cara celestia

$ ./celestia-qt-continuous-x86_64.AppImage --celestia-extract-data
done: celestia data extracted to '/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data'
start celestia e.g. with
CELESTIA_DATA_DIR=/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data/ /home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage

cara AppImage

$ ./celestia-qt-continuous-x86_64.AppImage --appimage-extract
$ mv squashfs-root/usr/share/celestia/ my-data
$ rm -r squashfs-root

dan sekarang celestia dapat dimulai dengan jalur data alternatif

$ CELESTIA_DATA_DIR=~/celestia-app/my-data/ ./celestia-qt-continuous-x86_64.AppImage

Pembaruan

Prosedur untuk melakukan pembaruan masih dalam peninjauan. Sampai klarifikasi, AppImage dapat diperbarui dengan AppImageUpdate.
Petunjuk:

Itu saja untuk saat ini.

packaging

Komentar yang paling membantu

Apakah Anda tertarik untuk memiliki updater di dalam aplikasi? Ada plugin Qt yang bisa melakukannya. https://github.com/TheFutureShell/updatedeployqt cc @antony-jr

Kedengarannya menarik. Aku akan melihat lebih dekat.

Semua 28 komentar

Kedengarannya seperti kasing untuk skrip AppRun khusus?

Kedengarannya seperti kasing untuk skrip AppRun khusus?

Maaf, saya tidak mengerti. Bisakah Anda menjelaskan sedikit?

Dengan #335 digabungkan, ini:

buat folder rumah portabel untuk digunakan sebagai $HOME

$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home

buat folder konfigurasi portabel untuk digunakan sebagai $XDG_CONFIG_HOME

$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config

dan ini:

"Kesalahan Menyimpan Bookmark" "Sistem file hanya-baca" saat keluar

$ mkdir -m 700 ~/celestia-app/celestia-qt-latest-x86_64.AppImage.home/.config

tidak diperlukan lagi (menyilangkan jari saya :))

Maaf, saya tidak mengerti. Bisakah Anda menjelaskan sedikit?

Dari apa yang Anda tulis, sepertinya pengguna harus mengekspor variabel lingkungan tertentu agar ini berfungsi. Yang ingin saya tunjukkan adalah AppRun , file di dalam AppImage yang dapat Anda gunakan untuk menulis skrip Anda sendiri, yang akan mengekspor variabel lingkungan yang diperlukan.

Beri tahu saya jika Anda mengalami kesulitan dan membutuhkan bantuan nyata.

Dengan #335 digabungkan, ini:

buat folder rumah portabel untuk digunakan sebagai $HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
buat folder konfigurasi portabel untuk digunakan sebagai $XDG_CONFIG_HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config

dan ini:

"Kesalahan Menyimpan Bookmark" "Sistem file hanya-baca" saat keluar
$ mkdir -m 700 ~/celestia-app/celestia-qt-latest-x86_64.AppImage.home/.config

tidak diperlukan lagi (menyilangkan jari saya :))

Tolong dicatat:

$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config

tidak ada hubungannya dengan masalah atau kesalahan, sebaliknya, mereka menawarkan kemungkinan untuk menyimpan konfigurasi dan sejenisnya tidak di bawah $HOME/, $HOME/.config, $HOME/.local, tetapi di bawah direktori portabel yang disebutkan di atas.

Maaf, saat itu saya salah paham. Sebenarnya ini sesederhana 3 langkah itu:

Tutorial cara menjalankan AppImage

wget -c https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage # Download
chmod +x celestia-qt-latest-x86_64.AppImage # Make executable
./celestia-qt-latest-x86_64.AppImage # Run

Ini dia berjalan di Xubuntu 18.04:

celestia

__Luar biasa!__ :+1:

Maaf, saya tidak mengerti. Bisakah Anda menjelaskan sedikit?

Dari apa yang Anda tulis, sepertinya pengguna harus mengekspor variabel lingkungan tertentu agar ini berfungsi. Yang ingin saya tunjukkan adalah AppRun , file di dalam AppImage yang dapat Anda gunakan untuk menulis skrip Anda sendiri, yang akan mengekspor variabel lingkungan yang diperlukan.

Beri tahu saya jika Anda mengalami kesulitan dan membutuhkan bantuan nyata.

Tentu akan menjadi keuntungan untuk membersihkan https://build.opensuse.org/project/show/OBS :AppImage, instal versi baru dan perbaiki build yang tidak dapat diselesaikan/failed/broken yang ada.
Tetapi ada orang lain yang bertanggung jawab, saya mungkin akan membuat entri bug.
Saya juga memperhatikan bahwa AppImageUpdate tidak berfungsi dengan benar dengan AppImages yang dihasilkan oleh OBS - tetapi saya perlu melihatnya lebih dekat.

Masalah dengan libmurrine.so menjengkelkan, ya, tetapi kita harus menunggu tes lebih lanjut dari pengguna di sebanyak mungkin platform.

tidak ada hubungannya dengan masalah atau kesalahan, sebaliknya, mereka menawarkan kemungkinan untuk menyimpan konfigurasi dan sejenisnya tidak di bawah $HOME/, $HOME/.config, $HOME/.local, tetapi di bawah direktori portabel yang disebutkan di atas.

Tampaknya Anda benar, karena seperti yang saya lihat jika Anda tidak secara eksplisit membuat dir appimage menggunakan default $HOME dll.

Tapi sejujurnya --appimage-portable-config diperlukan hanya untuk mereka yang memiliki nondefault $XDG_CONFIG_HOME . Dan appimage tidak memiliki sarana untuk mendefinisikan ulang $XDG_DATA_HOME .

Saya mencoba dengan dua alat pembaru yang berbeda dan tidak ada yang dapat memperbaruinya dengan benar:

https://github.com/AppImage/AppImageUpdate

aiu-fails

https://github.com/antony-jr/AppImageUpdater

aiur

Pesan ini sebenarnya sangat membantu @antony-jr. Kita bisa melihat:

me<strong i="15">@host</strong>:~$ strings Downloads/celestia-qt-0-Build160.1.glibc2.14-x86_64.AppImage | strings | grep zsync
zsync|https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync
(...)

me<strong i="16">@host</strong>:~$ wget https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync

--2019-08-04 20:57:11--  https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync
(...)
HTTP request sent, awaiting response... 302 Found
Location: http://downloadcontent.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-0-Build160.1.glibc2.14-x86_64.AppImage.zsync [following]

Jadi sepertinya ada bug di https://download.opensuse.org yang membuatnya dialihkan ke http daripada ke https. Ini digunakan untuk bekerja; jadi saya menduga itu adalah bug yang baru-baru ini diperkenalkan.

cc @AdrianSchroeter

appimage tidak memiliki sarana untuk mendefinisikan ulang $XDG_DATA_HOME

Apakah Anda pikir kita harus menambahkannya?

Saya mencoba dengan dua alat pembaru yang berbeda dan tidak ada yang dapat memperbaruinya dengan benar:

https://github.com/AppImage/AppImageUpdate

https://github.com/CelestiaProject/Celestia/issues/333#issuecomment -518027817

ya, saya sedang memikirkan sesuatu seperti itu, terima kasih telah menguji.

Untuk celestia AppImageUpdate akan sangat menguntungkan, jadi Anda tidak perlu mengunduh seluruh paket dengan setiap build.

Untuk celestia AppImageUpdate akan sangat menguntungkan, jadi Anda tidak perlu mengunduh seluruh paket dengan setiap build.

Memang! :+1:

appimage tidak memiliki sarana untuk mendefinisikan ulang $XDG_DATA_HOME

Apakah Anda pikir kita harus menambahkannya?

Ini terdengar logis bagi saya.

Apakah Anda tertarik untuk memiliki updater di dalam aplikasi? Ada plugin Qt yang bisa melakukannya. https://github.com/TheFutureShell/updatedeployqt cc @antony-jr

Apakah Anda tertarik untuk memiliki updater di dalam aplikasi? Ada plugin Qt yang bisa melakukannya. https://github.com/TheFutureShell/updatedeployqt cc @antony-jr

Kedengarannya menarik. Aku akan melihat lebih dekat.

@ munix9 beri tahu saya jika Anda ingin mengintegrasikan pembaru ke dalam aplikasi Anda. Anda juga dapat menggunakan https://antony-jr.github.io/AppImageUpdaterBridge yang dapat digunakan sebagai perpustakaan atau sebagai plugin Qt untuk melakukan pembaruan mandiri. Ini sepenuhnya ditulis dalam Qt dan menghormati loop acara.

PS : updatedeployqt masih dalam tahap alpha dan mendapat operasi jantung terbuka setiap minggu jadi saya tidak terlalu percaya diri untuk merekomendasikannya kepada Anda.

@munix9 Jika Anda ingin melihat cara kerja pembaruan, Lihat bagaimana qtox menggunakannya -> https://github.com/qTox/qTox-nightly-releases/releases

Setelah mengunduhnya, tambahkan beberapa data sampah untuk memicu pembaruan,

 $ echo "changes" >> qTox-*-x86_64.AppImage
 $ ./qTox-*-x86_64.AppImage

buka pengaturan -> tentang -> pembaruan tersedia (tombol akan muncul setelah beberapa waktu)

FYI: Saya menggunakan https://github.com/antony-jr/updatedeployqt untuk menguji opsi pembaruan (tag "1", tag "berkelanjutan" sepertinya tidak berfungsi saat ini).
Saya pikir ini adalah cara cepat dan mudah untuk mencoba fungsionalitas pembaruan terintegrasi - kode tidak perlu diubah - kecuali untuk menetapkan nama QObject untuk menu bantuan.
AppImageUpdaterBridge tampaknya menjadi alternatif yang menarik - mari kita lihat apa yang akan terjadi di masa depan.

https://github.com/munix9/Celestia/releases/tag/continuous
https://github.com/munix9/Celestia/blob/appimage_build/dist/appimage/fix-appimage_dir.patch#L43

kecuali untuk menetapkan nama QObject untuk menu bantuan.

Anda juga dapat mencoba mencocokkan substring dari semua objek QMenu atau objek QAction dalam program.

EDIT : Saya tidak menambahkan dokumentasi apa pun karena saya benar-benar tidak punya waktu (tapi saya sangat bersemangat) dan alat ini masih dalam tahap alfa sehingga perubahan besar belum datang.

@ munix9 Pemutakhiran berfungsi dengan baik di pihak saya. :+1:

kecuali untuk menetapkan nama QObject untuk menu bantuan.

Anda juga dapat mencoba mencocokkan substring dari semua objek QMenu atau objek QAction dalam program.

EDIT : Saya tidak menambahkan dokumentasi apa pun karena saya benar-benar tidak punya waktu (tapi saya sangat bersemangat) dan alat ini masih dalam tahap alfa sehingga perubahan besar belum datang.

@ munix9 Pemutakhiran berfungsi dengan baik di pihak saya. +1

Suatu hal yang mungkin lebih baik diselesaikan:
Jika pembaruan tersedia, maka file baru mendapatkan nama misalnya

celestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage

Ini membuat direktori yang ada

celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home

usang karena tidak secara otomatis diganti namanya.

Apakah ada solusi untuk ini?

Suatu hal yang mungkin lebih baik diselesaikan:
Jika pembaruan tersedia, maka file baru mendapatkan nama misalnya

celestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage

@ munix9 Sebenarnya, .zs_old tetapi saya memutuskan untuk tidak menyentuh versi lama dan membiarkan pengguna tangani itu. Namun kami dapat menambahkan opsi untuk menghapus file lama ketika konflik ini terjadi, atau kami dapat mengganti namanya seperti yang dilakukan oleh pembaru resmi.

Juga jika kita terus memindahkan versi lama dengan ekstensi .zs_old , versi lain seperti itu akan hilang selamanya. Jika AppImage menggunakan nama yang sama untuk setiap rilis seperti dalam kasus Anda.

Pertama-tama, hanya SATU dari berikut ini yang harus digunakan:

celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home

Biasanya, aplikasi portabel seharusnya menjaga konfigurasinya per versi, sehingga pengguna dapat menjalankan beberapa versi dari aplikasi yang sama secara bersamaan tanpa mengganggu satu sama lain. Jika Anda ingin versi aplikasi yang berbeda berbagi set konfigurasi yang sama, Anda dapat, sebagai bagian dari AppRun kustom, melakukan sesuatu seperti (kode semu yang belum diuji):

VERSIONLESSHOME=$(dirname "$APPIMAGE")/celestia.home
if [ -d  "$VERSIONLESSHOME" ] ; then
  export HOME=$VERSIONLESSHOME
fi

Kemudian akan menggunakan celestia.home jika ada, terlepas dari nama file AppImage.

Apakah ini masuk akal?

Ya, AppImage.home seharusnya cukup.
Saya sudah mempertimbangkan dan menguji adaptasi di AppRun.
Mungkin dengan fallback, jika version-AppImage.home tidak ada untuk versi saat ini, gunakan AppImage.home jika tersedia - mirip dengan yang Anda sarankan.
Ini mungkin masuk akal.
Mari kita lihat apakah ada umpan balik yang mengungkapkan dari pengguna.

Halo,
kita bisa menempatkan addons? dan jika demikian, di direktori mana?
Terima kasih

@Amich-26 Celestia 1.7 membaca ~/.celestia.cfg jika ada.
Dalam file Anda dapat menambahkan ExtrasDirectories dengan direktori dengan addons:

{
ExtrasDirectories  [ "extras-standard" "extras" "~/celestia"]
}

Harap dicatat bahwa semua direktori harus terdaftar, tidak hanya satu tambahan.

Sebenarnya @munix9 menambahkan tambalan untuk celestia.cfg , sehingga Anda dapat menggunakan ~/.celestia untuk memasang add-on.

Dimungkinkan juga untuk mengekstrak data yang disematkan di AppImage:
./celestia-1.7.0-git-x86_64.AppImage --celestia-extract-data

Addons kemudian dapat ditempatkan di folder yang dibuat dan kemudian mulai menggunakan CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage .

Lihat juga ./celestia-1.7.0-git-x86_64.AppImage -h

Celestia 1.7.0~git - Real-time visual space simulation

Usage: ./celestia-1.7.0-git-x86_64.AppImage [OPTION]...
       CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage [OPTION]...

Celestia options:
  --conf <file>
    Alternate configuration file.
  --dir <dir>
    Alternate installation directory.
    The same can also be achieved with
    CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage
  --extrasdir <dir>
    Additional 'extras' directory.
  --fullscreen
    Start full-screen (not implemented yet).
  -l, --log <file>
    Copy console output into a file.
  -s, --nosplash
    Disable splash screen (not implemented yet).
  -u, --url <url>
    Start with the given URL (not implemented yet).
  --help
    Show celestia help (not implemented yet).

AppImage options:
  --celestia-fisheye
    Start celestia with fisheye projection (celestia-fisheye.cfg)
  --celestia-create-general-home
    Create a general home directory depending on the main version
    /tmp/celestia-1.7.home
  --celestia-extract-data
    Extract the embedded data in the directory
    /tmp/celestia-1.7.0-git-x86_64.AppImage.data
  -h, --celestia-help
    Show this help and exit.

Terima kasih ! Berhasil.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

drzraf picture drzraf  ·  20Komentar

shujaatak picture shujaatak  ·  9Komentar

CelestiaProject picture CelestiaProject  ·  8Komentar

RacerBG picture RacerBG  ·  9Komentar

furquan-lp picture furquan-lp  ·  8Komentar