Рейтинг:1

Компиляция программы из исходников

флаг cn

У меня есть основной вопрос, касающийся пакетов и возможности сборки программы в Ubuntu. Чтобы конкретизировать: я использую Убунту 18.04.6 ЛТС.Скажем, я хочу собрать Okular из исходного кода, чтобы иметь последние функции [ окуляр из источника ]. Есть несколько связанных вопросов по этой теме, см. Q1, Q2, но я хотел бы знать следующее: при запуске загрузки необходимых зависимостей (например, мне нужно cmake_3.18.4-2_amd64.deb, а для этого нужно libarchive13_3.4.3-2+b1_amd64.deb и так далее...) как я могу проверить, нужно ли мне в какой-то момент более новое ядро? Потому что это был бы окончательный конец, верно (поскольку в этот момент я действительно должен напрямую установить никогда ОС)? Я не уверен, до какой степени подходящий делает эту работу. Делает подходящийвывод

 ...
     cmake : зависит: libarchive13 (>= 3.3.3), но необходимо установить 3.2.2-3.1ubuntu0.7
     Зависит: libgcc-s1 (>= 3.0), но не устанавливается
     Зависит: libjsoncpp24 (>= 1.9.4), но не устанавливается
     Зависит: libstdc++6 (>= 9), но необходимо установить 8.4.0-1ubuntu1~18.04

 ...

означает именно это, а именно, что безнадежно установить все необходимые зависимости для достижения успеха? Я не боюсь много работы, но я хотел бы знать заранее, не будет ли пустой тратой времени собирать пакет самостоятельно. Какова наилучшая процедура здесь (кроме обновления системы)?

Pilot6 avatar
флаг cn
Почему вы скачиваете пакеты вручную7 Запустите `sudo apt install build-essential`, и все зависимости будут установлены. Или установите хотя бы `cmake`.
pawel_winzig avatar
флаг cn
@Pilot6: этот вывод получен при установке `cmake_3.18.4-2_amd64.deb`. Так стоит ли мне продолжать или это безнадежно?
pawel_winzig avatar
флаг cn
@Pilot6: И, кстати, я установил `build-essential`...
Pilot6 avatar
флаг cn
`sudo apt install cmake` Apt должен позаботиться о зависимостях.
pawel_winzig avatar
флаг cn
@Pilot6: Ну, это, конечно, то, что я уже сделал, вот результат: `Следующие пакеты имеют неудовлетворенные зависимости: cmake : зависит: cmake-data (= 3.10.2-1ubuntu2.18.04.2), но необходимо установить 3.18.4-2`
pawel_winzig avatar
флаг cn
Итак, вернемся к моему вопросу: стоит ли продолжать?
Pilot6 avatar
флаг cn
Вероятно, это связано с тем, что вы загрузили и установили неправильную версию вручную.
Pilot6 avatar
флаг cn
Удалите `cmake` и установите его снова.Версия 3.18 не для Ubuntu 18.04.
pawel_winzig avatar
флаг cn
Я вижу, где я могу проверить, для Ubuntu 18.04 или нет? Я действительно установил 3.18 из репозитория Debian.
user535733 avatar
флаг cn
Когда вы возитесь с разными версиями, часто бывает полезно использовать контейнер или виртуальную машину (или в Python venv), чтобы предотвратить загрязнение вашей базовой системы всеми странными версиями.
user535733 avatar
флаг cn
Поскольку вы установили build-essential, попробуйте `rmadison`. Пример: `rmadison cmake` сообщит вам версии и соответствующие выпуски Ubuntu. `rmadison -u debian cmake` скажет вам то же самое для Debian.
pawel_winzig avatar
флаг cn
@ user535733 `rmadison cmake` говорит мне, что самая высокая версия `cmake`, которую я могу иметь для Ubuntu 18.04, это `3.10.2-1ubuntu2.18.04.2`. Поскольку для сборки Okular требуется CMake 3.16 или выше, установить его невозможно, верно?
user535733 avatar
флаг cn
Почти всегда есть выход. Но это говорит вам, что конкретный путь не будет легким. К тому времени, когда вы обновите зависимости, вы, по сути, будете работать с 21.04 или 21.10... и получить это может быть очень уродливо. Возможно, это не тот путь, который вам нужен. В большей части документации по сборке предполагается, что вам нужно актуальное программное обеспечение, а это значит, что вам нужны актуальные зависимости.
pawel_winzig avatar
флаг cn
@user535733 user535733 Но в этом и смысл. Что мне говорит "путь не будет легким"? Может ли он выйти из строя или он просто устанавливает много зависимостей? Именно эта нечеткость и не нужна.
user535733 avatar
флаг cn
Это нечетко, потому что мы не проверяли, что вы делаете. Вы сбились с намеченного пути. Мое мнение таково, что вы разрушите свою систему, пытаясь установить новейшее программное обеспечение в систему на базе Debian трехлетней давности. Вы не сможете согласовать все конфликты зависимостей, которые вы создадите. Однако я не проверял это. Я могу ошибаться.
pawel_winzig avatar
флаг cn
@user535733 user535733 Я спрашиваю об этом, так как думаю о следующем сценарии: скажем, вы используете кластер на Debian 10, где не так просто обновить ОС (время простоя и т. д.). Когда я должен сказать: здесь я могу рискнуть компиляцией из исходников, чтобы получить более новую версию какого-то пакета?
N0rbert avatar
флаг zw
Debian 10 здесь не по теме. В Ubuntu используйте flatpak, как описано в ответе ниже.
Рейтинг:2
флаг zw

Вы не можете скомпилировать очень новое программное обеспечение на не очень старой системе из-за зависимостей. Ручная установка новых зависимостей в старой системе сломает ее.

В качестве безвредной альтернативы вы можете использовать Плоский пакет Okular 21.08.2 из KDE вместо этого на вашем Ubuntu 18.04 LTS. Установите его с помощью:

sudo add-apt-repository ppa:flatpak/stable
судо подходящее обновление
sudo apt установить плоский пакет

flatpak удаленное добавление --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak установить flathub org.kde.okular

И для начала используйте

flatpak запустить org.kde.okular

или найдите соответствующий значок на рабочем столе.

pawel_winzig avatar
флаг cn
Итак: плоская упаковка или снэп? Каким-то образом ваш комментарий, N0rbert, был удален...
pawel_winzig avatar
флаг cn
...и для запуска: `flatpak run org.kde.okular`
Рейтинг:-1
флаг cn

KDE уже решил эту проблему с помощью Okular Snap.

https://snapcraft.io/okular

Snap изолирован от остальной части вашей системы и будет автоматически обновляться всякий раз, когда автор (KDE) отправляет обновление.

Текущая оснастка (версия 20.12.3) должна быть полностью совместима с вашей системой 18.04.

  • Для получения дополнительной информации: снап-лист
  • Установить: sudo snap установить okular
  • Он не зависит от версий Ubuntu (или Debian). Если вы обнаружите, что снимок устарел, просто пропингуйте KDE напрямую — он автор и может обновить его в любое время.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.