Ссначала нужно скачать OpenAstro из репозитория
https://launchpad.net/~tomtomtom/+archive/ubuntu/openastro.org(или точнее
http://ppa.launchpadcontent.net/tomtomtom/openastro.org/ubuntu/pool/main/ )
Скачать архивы исходных текстов, файлы *.orig.tar.xz (не deb пакеты, а именно архивы)
Так же полезно (но необязательно) скачать пакет openastro.org-data_1.9-2ubuntu2~focal_all.deb, его не устанавливать, но распаковать менеджером архивов, чтобы посмотреть как он устроен, а также пакет openastro.org_1.1.57-4~ppa~jammy_all.deb, чтобы посмотреть зависимости.
Установить Python 3.10
для этого:
Установить необходимые для сборки пакеты
sudo apt-get install zlib1g-dev build-essential libgdbm-dev libncurses5-dev libssl-dev libnss3-dev libffi-dev libreadline-dev wget libsqlite3-dev libbz2-dev tk-dev uuid-dev
(возможно понадобятся и другие, точно не помню)
Скачать архив с исходниками Python 3.10 с официального сайта Питона (например, версию 3.10.17)
Распаковать архив
Зайти в папку с распакованным архивом и выполнить
./configure
или
./configure --enable-optimizations
Собрать командой
make
Проверить сборку
make test
Установить во временную папку
fakeroot
make install DESTDIR=`pwd`/tempinstall
Перейти во временную папку, создать каталог DEBIAN
cd tempinstall
mkdir DEBIAN
Создать файл control
В нём написать что-то вроде:
Package: python3.10
Version: 3.10.17
Architecture: amd64
Maintainer: здесь ваше имя
Depends:
Priority: optional
Description: Python vesion 3.10.17
Создать в папке
tempinstall/usr/share/applications
файл
idle-python3.10.desktop
внём написать:
[Desktop Entry]
Name=IDLE (using Python-3.10)
Comment=Integrated Development Environment for Python (using Python-3.10)
Exec=/usr/local/bin/idle3.10
Icon=/usr/share/pixmaps/python3.10.xpm
Terminal=false
Type=Application
Categories=Application;Development;
StartupNotify=true
Положить иконку питона по адресу:
tempinstall/usr/share/pixmaps/python3.10.xpm
Чтобы этот Питон не пытался объявить себя питоном по-умолчанию,
заходи в папку tempinstall/usr/local/bin, и там убираем файлы (по большей части просто ссылки) вроде:
2to3, idle3, pip3, pydoc3, python3, python3.1, python3-config,
при этом не трогаем файлы, в названии которых фигурирует конкретно python 3.10:
2to3-3.10 idle3.10 pip3.10 pydoc3.10 python3.10 python3.10-config,
ну а в файле pip3.10
первую строку меняем следующим образом:
#!/usr/local/bin/python3.10
Собрать пакет (в режиме fakeroot)
fakeroot dpkg -b tempinstall
Установить собранный пакет.
--------------------------------
Установить архив python3-swisseph_2.00.00.orig.tar.xz
Для этого, открыв терминал в папке с архивом, ввести команду:
sudo pip3.10 install python3-swisseph_2.00.00.orig.tar.xz
Внимание, python3-swisseph (он же pyswisseph) нужно установить именно из этого архива, а не из репозитория pip,
потому что в репозитории pypi лежит уже другая, более новая версия, с которой openastro без адаптации кода
(выдаст ошибку о несовместимости типов кортежа с числом, потому что (насколько я смог понять) первым элементом кортежа, выдаваемого программе библиотекой, будет не число, а другой, вложенный кортеж).
Аналогично установить остальные архивы:
openastro.org-data_1.9.orig.tar.xz
и
openastro.org_1.1.57.orig.tar.xz
Базы данных famous.sql и geonames.sql, а тавкже папку swisseph копируем в папку
/usr/local/share/openastro.org
(если они не скопировались автоматически),
а файлы из папки swisseph в папку .openastro.org/swiss_ephemeris в домашнем каталоге.
-----------------------------
Установить зависимости
sudo pip3.10 install .... (что там ему нужно, каиры, гобъекты, таймзоны и т.д.)
При необходимости устанавливать нужные для сборки дэвы, если pip будет ругаться.
В итоге вывод команды
sudo pip3.10 list
должен выглядеть как-то примерно так:
Package Version
------------------ -----------
cffi 1.17.1
cryptography 44.0.3
ed25519 1.5
gobject 0.1.0
hkdf 0.0.3
homekit 0.19.0
Jinja2 3.1.6
Levenshtein 0.27.1
MarkupSafe 3.0.2
OpenAstro.org 1.1.57
pgi 0.0.11.2
pip 23.0.1
pkgconfig 1.5.5
PyAudio 0.2.14
pycairo 1.28.0
pycparser 2.22
pygi 1.0.3
PyGObject 3.52.3
pyproject 1.3.1
pyserial 3.5
pyswisseph 2.0.0.post2
python-dateutil 2.9.0.post0
python-Levenshtein 0.27.1
pytz 2025.2
RapidFuzz 3.13.0
setuptools 65.5.0
six 1.17.0
tlv8 0.10.0
tz 0.2.2
Если все зависимости установлены корректно, то Openastro должен запускаться по пункту в меню, либо по команде:
python3.10 /usr/local/bin/openastro