например.
$ mkdir ~/AppImage
$ cd ~/AppImage
$ 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
создать переносимый, зависящий от версии основной каталог $ HOME в той же папке, что и файл AppImage
$ mkdir celestia-1.7.home
запустить Celestia / получить помощь (имя файла может измениться после обновлений)
$ ./celestia-1.7.0-git-x86_64.AppImage
$ ./celestia-1.7.0-git-x86_64.AppImage -h
$ 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
создать переносимый, зависящий от версии основной каталог $ HOME в той же папке, что и файл AppImage
$ mkdir celestia-1.6.home
запустить Celestia / получить помощь (имя файла может измениться после обновлений)
$ ./celestia-1.6.2-x86_64.AppImage
$ ./celestia-1.6.2-x86_64.AppImage -h
$ wget https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
$ chmod 755 *.AppImage
при желании создайте переносной каталог $ HOME в той же папке, что и файл AppImage
$ mkdir AppImageUpdate-x86_64.AppImage.home
$ wget -O obs-munix9.pub https://build.opensuse.org/projects/home:munix9/public_key
global (без переносного $ HOME для AppImageUpdate)
$ gpg2 --import obs-munix9.pub
только для AppImageUpdate (переносимый $ HOME, см. выше)
$ HOME=~/AppImage/AppImageUpdate-x86_64.AppImage.home gpg2 --import obs-munix9.pub
старые вещи
Система сборки:
Системы тестирования:
Версия: celestia-qt, git master (с дополнительными хаками / патчами и включенными специями)
Тестовая среда AppImage теперь перенесена с OBS на github / travis-ci.
https://github.com/munix9/Celestia (ветка appimage_build)
Теперь обновления должны быть доступны через https://github.com/AppImage/AppImageUpdate.
создать рабочий каталог (произвольно, может быть перемещен или переименован позже)
$ mkdir ~/celestia-app
$ cd ~/celestia-app
загрузите файл AppImage с https://github.com/munix9/Celestia/releases (непрерывная сборка)
$ wget https://github.com/munix9/Celestia/releases/download/continuous/celestia-qt-continuous-x86_64.AppImage
и сделать его исполняемым
$ chmod 755 celestia-qt-continuous-x86_64.AppImage
создать переносную домашнюю папку для использования в качестве $ HOME
$ ./celestia-qt-continuous-x86_64.AppImage --appimage-portable-home
Подсказка: теперь есть альтернатива переносному каталогу $ HOME. Если доступный для записи каталог с именем celestia-qt.home
существует в той же папке, что и AppImage, этот каталог определяется как переносимый $ HOME.
Это должно упростить обработку разных имен AppImage после обновлений.
рискнуть сделать первый старт
$ ./celestia-qt-continuous-x86_64.AppImage
«Ошибка сохранения закладок» «Файловая система только для чтения» при выходе - решено (# 335)
$ mkdir -m 700 ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.config
(celestia-qt: ...): Gtk-WARNING **: ...: Невозможно найти движок темы в module_path: "murrine", - решено, больше не должно повторяться
сначала установите gtk2 -otors-murrine
$ sudo apt-get install gtk2-engines-murrine
решение, добавив GTK_PATH64 env var при запуске AppImage
$ GTK_PATH64=$GTK_PATH64:/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/ ./celestia-qt-continuous-x86_64.AppImage
или создав символическую ссылку
$ 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/
путь Селестии
$ ./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
способ AppImage
$ ./celestia-qt-continuous-x86_64.AppImage --appimage-extract
$ mv squashfs-root/usr/share/celestia/ my-data
$ rm -r squashfs-root
и теперь celestia можно запустить с альтернативным путем к данным
$ CELESTIA_DATA_DIR=~/celestia-app/my-data/ ./celestia-qt-continuous-x86_64.AppImage
Процедура обновления все еще находится на рассмотрении. До уточнения AppImage можно обновлять с помощью AppImageUpdate.
Подсказки:
На этом пока все.
Похоже на то, что нужен собственный сценарий AppRun?
Похоже на то, что нужен собственный сценарий AppRun?
Простите, я не понимаю. Не могли бы вы немного объяснить?
После слияния # 335 это:
создать переносную домашнюю папку для использования в качестве $ HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-портативный-дом
создать переносную папку конфигурации для использования как $ XDG_CONFIG_HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-Portable-config
и это:
«Ошибка при сохранении закладок» «Файловая система только для чтения» при выходе
$ mkdir -m 700 ~ / celestia-app / celestia-qt-latest-x86_64.AppImage.home / .config
больше не требуется (скрещиваю пальцы :))
Простите, я не понимаю. Не могли бы вы немного объяснить?
Из того, что вы написали, похоже, что пользователь должен экспортировать определенные переменные среды, чтобы эта работа работала. Я хотел указать на AppRun
, файл внутри AppImage, который вы можете использовать для написания собственного скрипта, который будет экспортировать необходимые переменные среды.
Дайте мне знать, если вы застряли и вам нужна конкретная помощь.
После слияния # 335 это:
создать переносную домашнюю папку для использования в качестве $ HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-портативный-дом
создать переносную папку конфигурации для использования как $ XDG_CONFIG_HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-Portable-configи это:
«Ошибка при сохранении закладок» «Файловая система только для чтения» при выходе
$ mkdir -m 700 ~ / celestia-app / celestia-qt-latest-x86_64.AppImage.home / .configбольше не требуется (скрещиваю пальцы :))
Пожалуйста, обрати внимание:
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config
не имеют ничего общего с проблемами или ошибками, напротив, они предлагают возможность хранить конфигурации и т.п. не в $ HOME /, $ HOME / .config, $ HOME / .local, а в вышеупомянутых переносимых каталогах.
Извините, тогда я ошибся. На самом деле это так же просто, как эти 3 шага:
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
Вот он работает на Xubuntu 18.04:
__ Замечательно! __: +1:
Простите, я не понимаю. Не могли бы вы немного объяснить?
Из того, что вы написали, похоже, что пользователь должен экспортировать определенные переменные среды, чтобы эта работа работала. Я хотел указать на
AppRun
, файл внутри AppImage, который вы можете использовать для написания собственного скрипта, который будет экспортировать необходимые переменные среды.Дайте мне знать, если вы застряли и вам нужна конкретная помощь.
Несомненно, было бы преимуществом очистить https://build.opensuse.org/project/show/OBS : AppImage, установить новые версии и исправить существующие неразрешимые / неудачные / сломанные сборки.
Но есть другие ответственные, я, наверное, сделаю запись об ошибке.
Я также заметил, что AppImageUpdate некорректно работает с AppImages, сгенерированными OBS, но мне нужно взглянуть на это повнимательнее.
Дело в libmurrine.so раздражает, да, но нам следует дождаться дальнейших тестов пользователей на как можно большем количестве платформ.
не имеют ничего общего с проблемами или ошибками, напротив, они предлагают возможность хранить конфигурации и т.п. не в $ HOME /, $ HOME / .config, $ HOME / .local, а в вышеупомянутых переносимых каталогах.
Кажется, вы правы, потому что, как я вижу, если вы явно не создаете эти dirs appimage, используйте по умолчанию $ HOME и т. Д.
Но честно говоря --appimage-portable-config
требуется только тем, у кого не по умолчанию $XDG_CONFIG_HOME
. И у appimage нет средств для переопределения $XDG_DATA_HOME
.
Я пробовал использовать два разных инструмента для обновления, и ни один из них не смог правильно его обновить:
https://github.com/AppImage/AppImageUpdate
https://github.com/antony-jr/AppImageUpdater
Это сообщение на самом деле очень полезно @ antony-jr. Мы можем увидеть:
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]
Таким образом, похоже, что в https://download.opensuse.org есть ошибка, из-за которой он перенаправляется на http, а не на https. Раньше это работало; поэтому я подозреваю, что это недавно появившаяся ошибка.
Копия @AdrianSchroeter
appimage не может переопределить $ XDG_DATA_HOME
Как вы думаете, нам стоит его добавить?
Я пробовал использовать два разных инструмента для обновления, и ни один из них не смог правильно его обновить:
https://github.com/AppImage/AppImageUpdate
https://github.com/CelestiaProject/Celestia/issues/333#issuecomment -518027817
да, я думал что-то в этом роде, спасибо за тестирование.
Для celestia AppImageUpdate было бы очень выгодно, поэтому вам не нужно загружать весь пакет с каждой сборкой.
Для celestia AppImageUpdate было бы очень выгодно, поэтому вам не нужно загружать весь пакет с каждой сборкой.
Действительно! : +1:
appimage не может переопределить $ XDG_DATA_HOME
Как вы думаете, нам стоит его добавить?
Для меня это звучит логично.
Хотели бы вы иметь средство обновления внутри приложения? Есть плагин Qt, который может это сделать. https://github.com/TheFutureShell/updatedeployqt cc @ antony-jr
Хотели бы вы иметь средство обновления внутри приложения? Есть плагин Qt, который может это сделать. https://github.com/TheFutureShell/updatedeployqt cc @ antony-jr
Это звучит интересно. Я посмотрю повнимательнее.
@ munix9 дайте мне знать, если вы хотите интегрировать https://antony-jr.github.io/AppImageUpdaterBridge, который можно использовать как библиотеку или как плагин Qt для самостоятельного обновления. Он полностью написан на Qt и учитывает цикл событий.
PS : updatedeployqt все еще находится на стадии альфа-тестирования, и каждую неделю ему делают операцию на открытом сердце, поэтому я не очень уверен, чтобы рекомендовать его вам.
@ munix9 Если вы хотите увидеть, как работает обновление, посмотрите, как qtox использует его -> https://github.com/qTox/qTox-nightly-releases/releases
После загрузки добавьте данные мусора, чтобы запустить обновление,
$ echo "changes" >> qTox-*-x86_64.AppImage
$ ./qTox-*-x86_64.AppImage
зайти в настройки -> о -> доступно обновление (кнопка появится через некоторое время)
К вашему сведению: я использовал https://github.com/antony-jr/updatedeployqt, чтобы проверить параметр обновления (тег «1», тег «непрерывный», похоже, в настоящий момент не работает).
Я думаю, что это быстрый и простой способ опробовать встроенную функцию обновления - код не нужно менять - за исключением назначения имени QObject для меню справки.
AppImageUpdaterBridge кажется интересной альтернативой - посмотрим, что нас ждет в будущем.
https://github.com/munix9/Celestia/releases/tag/continuous
https://github.com/munix9/Celestia/blob/appimage_build/dist/appimage/fix-appimage_dir.patch#L43
за исключением назначения имени QObject для меню справки.
Вы также можете попробовать сопоставить подстроки всех объектов QMenu или объектов QAction в программе.
РЕДАКТИРОВАТЬ : Я не добавлял никакой документации, так как у меня действительно нет времени (но я очень взволнован), а инструмент все еще находится в альфа-версии, поэтому серьезные изменения еще впереди.
@ munix9 Программа обновления отлично работает на моей стороне. : +1:
за исключением назначения имени QObject для меню справки.
Вы также можете попробовать сопоставить подстроки всех объектов QMenu или объектов QAction в программе.
РЕДАКТИРОВАТЬ : Я не добавлял никакой документации, так как у меня действительно нет времени (но я очень взволнован), а инструмент все еще находится в альфа-версии, поэтому серьезные изменения еще впереди.
@ munix9 Программа обновления отлично работает на моей стороне. +1
Вещь, которую можно было бы решить лучше:
Если доступно обновление, то новый файл получает имя, например
celestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage
Это делает существующие каталоги
celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home
устарели, потому что они не переименовываются автоматически.
Есть ли решение для этого?
Вещь, которую можно было бы решить лучше:
Если доступно обновление, то новый файл получает имя, напримерcelestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage
@ munix9 На самом деле программа обновления переименовывает ее, только если файл с целевым именем файла существует, в официальной программе обновления старый файл перемещается с расширением .zs_old
но я решил не трогать старую версию и позволить пользователям справиться. Однако мы можем добавить возможность удалить старый файл при возникновении этого конфликта или переименовать его, как это делает официальная программа обновления.
Также, если мы продолжим перемещать старую версию с расширением .zs_old
, другая такая версия будет потеряна навсегда. В случае, если AppImage использует одно и то же имя для каждого выпуска, как в вашем случае.
Прежде всего, следует использовать только ОДИН из следующего:
celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home
Обычно переносимые приложения должны сохранять свою конфигурацию для каждой версии, чтобы пользователь мог запускать несколько версий одного и того же приложения одновременно, не мешая друг другу. Если вы хотите, чтобы разные версии приложения использовали один и тот же набор конфигураций, вы можете в рамках настраиваемого AppRun
сделать что-то вроде (непроверенный псевдокод):
VERSIONLESSHOME=$(dirname "$APPIMAGE")/celestia.home
if [ -d "$VERSIONLESSHOME" ] ; then
export HOME=$VERSIONLESSHOME
fi
Затем он будет использовать celestia.home
если он есть, независимо от имени файла AppImage.
Имеет ли это смысл?
Да, AppImage.home
должно быть достаточно.
Я уже рассмотрел и протестировал адаптацию в AppRun.
Возможно, с запасным вариантом, если version-AppImage.home
не существует для текущей версии, используйте общий AppImage.home
если он доступен - аналогично тому, что вы предлагаете.
В этом есть смысл.
Посмотрим, есть ли какие-нибудь откровенные отзывы от пользователей.
Привет,
можно аддоны поставить? и если да, то в каком каталоге?
Спасибо
@ Amich-26 Celestia 1.7 читает ~/.celestia.cfg
если он существует.
В файл можно добавить ExtrasDirectories
с каталогами с надстройками:
{
ExtrasDirectories [ "extras-standard" "extras" "~/celestia"]
}
Обратите внимание, что в списке должны быть указаны все каталоги, а не только один дополнительный.
На самом деле @ munix9 добавляет патч для celestia.cfg
, поэтому вы можете использовать ~/.celestia
для установки дополнений.
Также возможно извлечь встроенные данные в AppImage:
./celestia-1.7.0-git-x86_64.AppImage --celestia-extract-data
Затем дополнения можно поместить в созданную папку, а затем запустить их с помощью CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage
.
См. Также ./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.
благодарю вас ! Оно работает.
Самый полезный комментарий
Это звучит интересно. Я посмотрю повнимательнее.