Запуск/установка Kumir

Можно создать и поддерживать собственный репозиторий, репозиторий в образовательной организации.

Нужна итоговая инструкция с командами, как автору темы установить программу :slightly_smiling_face: и чтобы другие могли воспользоваться ей. Ресурс http://easyastra.ru/store/kumir2.deb чей? Может лучше из репозитория официальных дистрибутивов взять пакет.

В сети пишут так (1), (2);

Можно попробовать Альт’овский *.rpm распаковать, но не уверен что получится;

На странице документации “Calculate Linux” имеется статья как устанавливать из ebuild.

*.rpm от “ROSA Linux”:

Спойлер
$ cat /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild

# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit rpm

DESCRIPTION="Implementation of Kumir programming language, designed by academician Ershov."
HOMEPAGE="https://www.niisi.ru/kumir/"
SRC_URI="amd64? ( https://mirror.yandex.ru/rosa/rosa2021.1/repository/x86_64/contrib/release/kumir-all-${PV}-7-rosa2021.1.x86_64.rpm )"

LICENSE=""
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="mirror strip"

RDEPEND="
    dev-qt/qtcore:5
    dev-qt/qtgui:5
    dev-qt/qtprintsupport:5
    dev-qt/qtscript:5
    dev-qt/qtsvg:5
    dev-qt/qtx11extras:5
"

DEPEND="${RDEPEND}"

S="${WORKDIR}"

src_unpack() {
    rpm_unpack kumir-all-${PV}-7-rosa2021.1.x86_64.rpm
}

src_install() {
    cp -R "${WORKDIR}/usr" "${D}" || die "install failed!"
}
Спойлер

1 Like

данная строка зачем нужна? может её закомментировать?

может keyword сменить на значение amd64, зачем значок тильда? Без него требуется меньше действий.
Напишу инструкцию как я применял файл, т.к. установку с использованием ebuild не рекомендуют.

Добавлю инструкцию как я создавал ebuild файл.
Копируем код из сообщения NickM.
Комментируем первую строку, добавив символ # в начало строки
# $ cat /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild
Строку KEYWORDS=“~amd64” меняем на
KEYWORDS="amd64"
Сохраняем файл как
kumir2-2.1.0.ebuild

Cоздаем директорию и копируем в неё ebuild файл (выполнять от суперпользователя):
mkdir -p /var/calculate/repos/custom/dev-lang/kumir2
cp kumir2-2.1.0.ebuild /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild
далее переходим в директорию custom репозитория и создаем файл Manifest
cd /var/calculate/repos/custom/dev-lang/kumir2
ebuild kumir2-2.1.0.ebuild manifest
Теперь можно используя команду
emerge
устанавливать и удалять kumir2

Данная строка вообще в файле ебилда не нужна. ебилд (здесь) начинается с
# Copyright
и заканчиваться должен не “}” а пустой строкой (вроде)

Так можно только для себя делать. Советовать другим такое - только если Вы станете мейнтейнером пакета для Gentoo/Кальки.

Спойлер

Что делают cp mkdir - вы понимаете, а что ‘cat’ - нет?

1 Like

Почитайте за cat, по сути - привожу Вам и другим пользователям форума содержимое указанного файла (и не только, почитайте за имеющийся/ возможный состав групп программ), т.к. наименование файла имеет значение, т.к. в ebuild используется ${PV}

Почитайте за KEYWORDS, где поймёте, что это “подстраховка”, т.к. никто Вам не может гарантировать о работоспособности указанного ebuild и все изменения Вы вносите с подтверждением и самостоятельно;

Рекомендую Вам пользоваться функционалом форума и оформлять Свои сообщения правильно, там, где требуется тег [code] применять его, это избавит пользователей от лишних действий и исключит ошибки при выделении/ копировании;

Не рекомендует кто?

Да, конечно, локальный оверлей/ репозиторий, а если он ещё и в сети организации, или ещё лучше публичный, это да, это здорово, но установить и протестировать разово, из файла ebuild, это отличное решение!

1 Like

Copyright это комментарий тоже, фактически с EAPI=8
ebuild начинается.

ну да для себя и ставишь программу, сам и копируешь все ebuild файлы. Зачем ещё добавлять действие лишнее себе - занесение в файл /etc/portage/package.accept_keywords/custom дополнительной строки. По сути если ты сам добавляешь сторонний .ebuild, должен понимать риски.

ну так это ошибка синтаксиса ebuild файла скорей всего. Для информации эта строка пригодится, значит правильней и безопасней сделать её комментарием - тогда она будет информировать о том где должен распологаться файл, о группе, но при этом не будет вносить ошибку. А так эта строка как есть сейчас создаст путаницу.

я вам предлагал оформить правильно конечную инструкцию - как ответ на вопрос в теме. Вы не написали. Тогда я сам решил всё таки дать ответ на вопрос в теме. В интерфейсе я не нашёл функции для кода, так что написал код просто в отдельной строке.

Заметка
Ebuild-файлы можно установить с помощью команды ebuild, однако это не рекомендуется — эта команда предназначена только для целей разработки. Ebuild-файлы должны быть размещены в репозитории ebuild-файлов и затем установлены командой emerge. 

рекомендация из вики gentoo. Для разового использования ebuild удобней. Но я написал инструкцию как внести ebuild файл в custom репозиторий и потом устанавливать и удалять программу kumir с помощью emerge

Вот именно что для себя. Другим не надо советовать через универсальный ебилд. я понял идею. 90-99 % не поймут (не заценят).

Похоже на то, что Вы хотите с разгону “въехать в тему”, с первых сообщений призываю Вас обращаться к документации;

Вы вольны делать всё, что Вам вздумается, здесь же опубликован не проверенный код, который каждый может, на Свой страх и риск, его использовать, осознанно;

О какой ошибке Вы говорите?

Создаёт для кого? Для копи-пастеров? Вы полагаете, что пользователь “Calculate Linux” (не важно какого “Linux”), готов бездумно скопировать, вставить и выполнить, не понимая, что это команда выполняет? По Вашему мнению все пользователи, различных операционных систем, так поступают?

Инструкцию оформить не проблема, была бы озвучена такая просьба. При этом, таких инструкций может быть тьма тьмущая, т.к. зависит от некоторых исходных данных, и уверен, что таковая не каждому и нужна;

В интерфейсе чего, форума? Странно, а всё необходимое тут есть:

Отлично, надеюсь эта инструкция кому-нибудь да пригодиться и Вам выразят благодарность!

Я как и написал что не знакомился с написанием ebuild. Но судя по тому что не было каких либо предупреждений - данный комментарий в начале - это правило оформления ebuild файла, а не обязательный элемент файла .ebuild и синтаксис языка не нарушает. Но у нас свой файл пользовательский (про деревья я так же не читал, вообще не понял смысла части функционала системы управления пакетов пока что, зачем это все для пользователя нужно). И кроме того зачем вы тогда под спойлер с кодом .ebuild поместили команду из терминала.

как раз о команде из терминала под спойлером с кодом. Зачем это так смешивать. Либо нужно делать это комментарием, либо писать отдельно от кода.
В общем не буду отвечать на вопросы далее. Про правила оформления кода я прочитал и понял что вы имели ввиду.

Понятно, что не понятно.
Вы в чём то не разобрались и приняли обвинять, или что?
Вам не понравилось объяснение, или что?
Вы хотите увидеть воображаемую инструкцию по установке, или что?
Инструкцию попробую предоставить, например, в таком стиле, конкретно Вас устроит?

это не обвинение, а рекомендация - не смешивать код ebuild файла с командой из эмулятора терминала.
Я свою инструкцию отредактировал с правилами офомления кода по вашим рекомендациям.
Предлагаю поднятся в начало темы и посмотреть о чем там писали. Да лучше всё таки дать ответ на вопрос темы, чтобы все как то подытожить. Далее не буду ничего обсуждать в этой теме.

Хорошо, понятно, присоединяйтесь к другим темам.

Нет, не сталкивался, но выше накидал некоторые варианты по установке из собранных бинарных пакетов из неофициальных источников.

И да, запустить удавалось, чуть выше, в подтверждение, предоставлены скрины из нескольких различных систем.

Добрый день. Выпал на несколько дней из процесса :face_with_peeking_eye:.
Всем огромное спасибо за помощь, за участие.
Впервые попробовал создать ebuild.
Не знаю насколько правильно, но я делал через текстовый редактор. Создал, скопировал, сохранил с *.ebuild
Потом закинул в папку, создал манифест:

# emerge kumir2
 * Last emerge --sync was Пн 30 сен 2024 17:40:00.

Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
Dependency resolution took 1.74 s (backtrack: 0/20).

>>> Verifying ebuild manifests
>>> Emerging binary (1 of 3) dev-qt/qtscript-5.15.14::gentoo
>>> Emerging binary (2 of 3) app-arch/rpm2targz-2021.03.16::gentoo
>>> Installing (2 of 3) app-arch/rpm2targz-2021.03.16::gentoo
>>> Installing (1 of 3) dev-qt/qtscript-5.15.14::gentoo
>>> Completed (2 of 3) app-arch/rpm2targz-2021.03.16::gentoo
>>> Completed (1 of 3) dev-qt/qtscript-5.15.14::gentoo
>>> Emerging (3 of 3) dev-lang/kumir2-2.1.0::custom
>>> Installing (3 of 3) dev-lang/kumir2-2.1.0::custom
>>> Recording dev-lang/kumir2 in "world" favorites file...
>>> Completed (3 of 3) dev-lang/kumir2-2.1.0::custom
>>> Jobs: 3 of 3 complete                           Load avg: 1.02, 0.51, 0.21
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

!!! existing preserved libs:
>>> package: dev-cpp/abseil-cpp-20240116.2-r4
 *  - /usr/lib64/libabsl_bad_variant_access.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_base.so.2308.0.0
 *  - /usr/lib64/libabsl_city.so.2308.0.0
 *  - /usr/lib64/libabsl_cord.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_cord_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_cordz_functions.so.2308.0.0
 *  - /usr/lib64/libabsl_cordz_handle.so.2308.0.0
 *  - /usr/lib64/libabsl_cordz_info.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_crc32c.so.2308.0.0
 *  - /usr/lib64/libabsl_crc_cord_state.so.2308.0.0
 *  - /usr/lib64/libabsl_crc_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_debugging_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_demangle_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_die_if_null.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_examine_stack.so.2308.0.0
 *  - /usr/lib64/libabsl_exponential_biased.so.2308.0.0
 *  - /usr/lib64/libabsl_graphcycles_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_hash.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_int128.so.2308.0.0
 *  - /usr/lib64/libabsl_kernel_timeout_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_log_globals.so.2308.0.0
 *  - /usr/lib64/libabsl_log_initialize.so.2308.0.0
 *      used by /usr/bin/protoc-23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_log_internal_check_op.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_log_internal_conditions.so.2308.0.0
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_log_internal_format.so.2308.0.0
 *  - /usr/lib64/libabsl_log_internal_globals.so.2308.0.0
 *  - /usr/lib64/libabsl_log_internal_log_sink_set.so.2308.0.0
 *  - /usr/lib64/libabsl_log_internal_message.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_log_internal_nullguard.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_log_internal_proto.so.2308.0.0
 *  - /usr/lib64/libabsl_log_sink.so.2308.0.0
 *  - /usr/lib64/libabsl_low_level_hash.so.2308.0.0
 *  - /usr/lib64/libabsl_malloc_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_raw_hash_set.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_raw_logging_internal.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_spinlock_wait.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_stacktrace.so.2308.0.0
 *  - /usr/lib64/libabsl_status.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_statusor.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_str_format_internal.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_strerror.so.2308.0.0
 *  - /usr/lib64/libabsl_string_view.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_strings.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_strings_internal.so.2308.0.0
 *  - /usr/lib64/libabsl_symbolize.so.2308.0.0
 *  - /usr/lib64/libabsl_synchronization.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_throw_delegate.so.2308.0.0
 *      used by /usr/lib64/libprotobuf-lite.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *      used by /usr/lib64/libprotoc.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_time.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
 *  - /usr/lib64/libabsl_time_zone.so.2308.0.0
 *      used by /usr/lib64/libprotobuf.so.23.3.0 (dev-libs/protobuf-23.3-r4)
Use emerge @preserved-rebuild to rebuild packages using these libraries

Как я понял нужно выполнить emerge @preserved-rebuild

emerge @preserved-rebuild
 * Last emerge --sync was Пн 30 сен 2024 17:40:00.

Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
Dependency resolution took 5.84 s (backtrack: 1/20).

[binary  N     ] app-crypt/rhash-1.4.4-r1  USE="nls ssl -debug -static-libs" ABI_X86="32 (64) (-x32)" 
[binary  N     ] dev-util/re2c-3.1  USE="-debug -test" 
[binary   R    ] dev-cpp/gtest-1.14.0-r1  ABI_X86="32*" 
[ebuild  N     ] dev-build/meson-format-array-0  PYTHON_TARGETS="python3_11 -python3_10 -python3_12 (-python3_13)" 
[ebuild  N     ] dev-python/installer-0.7.0  USE="-test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12 (-python3_13)" 
[ebuild  N     ] dev-python/gpep517-16  USE="-test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12 (-python3_13)" 
[ebuild  N     ] dev-build/meson-1.5.1  USE="-test -verify-sig" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12 (-python3_13)" 
[ebuild  N     ] dev-build/ninja-1.11.1-r5  USE="-doc -test" 
[binary  N     ] app-alternatives/ninja-1  USE="reference -samurai" 
[ebuild  N     ] dev-libs/jsoncpp-1.9.6  USE="-doc -test" ABI_X86="32 (64) (-x32)" 
[ebuild  N     ] dev-build/cmake-3.30.2  USE="ncurses qt6 -dap -doc -gui -test -verify-sig" 
[ebuild   R    ] dev-cpp/abseil-cpp-20240116.2-r4  ABI_X86="32*" 
[ebuild     U  ] dev-libs/protobuf-28.0 [23.3-r4] USE="libprotoc%* protobuf%* protoc%* -conformance% -debug% -libupb%" ABI_X86="32*" 
>>> Verifying ebuild manifests
>>> Emerging binary (1 of 13) app-crypt/rhash-1.4.4-r1::gentoo
>>> Emerging binary (2 of 13) dev-util/re2c-3.1::gentoo
>>> Emerging binary (3 of 13) dev-cpp/gtest-1.14.0-r1::gentoo
>>> Emerging (4 of 13) dev-build/meson-format-array-0::gentoo
>>> Emerging (5 of 13) dev-python/installer-0.7.0::gentoo
>>> Installing (1 of 13) app-crypt/rhash-1.4.4-r1::gentoo
>>> Installing (2 of 13) dev-util/re2c-3.1::gentoo
>>> Installing (3 of 13) dev-cpp/gtest-1.14.0-r1::gentoo
>>> Installing (4 of 13) dev-build/meson-format-array-0::gentoo
>>> Completed (1 of 13) app-crypt/rhash-1.4.4-r1::gentoo
>>> Installing (5 of 13) dev-python/installer-0.7.0::gentoo
>>> Completed (2 of 13) dev-util/re2c-3.1::gentoo
>>> Completed (4 of 13) dev-build/meson-format-array-0::gentoo
>>> Completed (3 of 13) dev-cpp/gtest-1.14.0-r1::gentoo
>>> Completed (5 of 13) dev-python/installer-0.7.0::gentoo
>>> Emerging (6 of 13) dev-python/gpep517-16::gentoo
>>> Emerging (7 of 13) dev-build/ninja-1.11.1-r5::gentoo
>>> Installing (6 of 13) dev-python/gpep517-16::gentoo
>>> Installing (7 of 13) dev-build/ninja-1.11.1-r5::gentoo
>>> Completed (6 of 13) dev-python/gpep517-16::gentoo
>>> Completed (7 of 13) dev-build/ninja-1.11.1-r5::gentoo
>>> Emerging (8 of 13) dev-build/meson-1.5.1::gentoo
>>> Emerging binary (9 of 13) app-alternatives/ninja-1::gentoo
>>> Installing (9 of 13) app-alternatives/ninja-1::gentoo
>>> Installing (8 of 13) dev-build/meson-1.5.1::gentoo
>>> Completed (8 of 13) dev-build/meson-1.5.1::gentoo
>>> Completed (9 of 13) app-alternatives/ninja-1::gentoo
>>> Emerging (10 of 13) dev-libs/jsoncpp-1.9.6::gentoo
>>> Installing (10 of 13) dev-libs/jsoncpp-1.9.6::gentoo
>>> Completed (10 of 13) dev-libs/jsoncpp-1.9.6::gentoo
>>> Emerging (11 of 13) dev-build/cmake-3.30.2::gentoo
>>> Installing (11 of 13) dev-build/cmake-3.30.2::gentoo
>>> Completed (11 of 13) dev-build/cmake-3.30.2::gentoo
>>> Emerging (12 of 13) dev-cpp/abseil-cpp-20240116.2-r4::gentoo
>>> Installing (12 of 13) dev-cpp/abseil-cpp-20240116.2-r4::gentoo
>>> Completed (12 of 13) dev-cpp/abseil-cpp-20240116.2-r4::gentoo
>>> Emerging (13 of 13) dev-libs/protobuf-28.0::gentoo
>>> Installing (13 of 13) dev-libs/protobuf-28.0::gentoo
>>> Completed (13 of 13) dev-libs/protobuf-28.0::gentoo
>>> Jobs: 13 of 13 complete                         Load avg: 11.6, 10.1, 5.2

 * Messages for package app-alternatives/ninja-1:

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at https://bugs.gentoo.org/ unless you report exactly
 * which two packages install the same file(s). See
 * https://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how
 * to solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 * 
 * Detected file collision(s):
 * 
 * 	/usr/bin/ninja
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * None of the installed packages claim the file(s).
 * 
 * Package 'app-alternatives/ninja-1' merged despite file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

Проверил через eix

calculate kumir2 # eix kumir
[I] dev-lang/kumir2 [1]
     Доступные версии:      2.1.0^ms
     Установленные версии:  2.1.0^ms(08:35:22 16.12.2024)
     Домашняя страница:     https://www.niisi.ru/kumir/
     Описание:              Implementation of Kumir programming language, designed by academician Ershov.

[1] "custom" /var/calculate/repos/custom

Вроде как все стало, но где ее найти? в меню “Пуск” ее нет. Поиск не ищет.

Это, скорое всего, у Вас что-то от предыдущих изменений в системе осталось и с установкой kumir никак не связано;

Чуть позже распишу пошаговую установку, попробуем отладить вместе.

Ставил только Мой офис образование, может что-то от него. других экспериментов не было.

Чуть позже распишу пошаговую установку, попробуем отладить вместе.

Огромное спасибо.

Все команды выполнял в Live-системе:

Длинные выводы буду скрывать под спойлер.

  1. Узнаем, где расположен локальный оверлей:
# cat /etc/portage/repos.conf/zz-calculate.conf 
Спойлер
# cat /etc/portage/repos.conf/zz-calculate.conf 

[DEFAULT]
main-repo = gentoo

[distros]
priority = 50
sync-uri = https://github.com/calculatelinux/distros
location = /var/db/repos/distros
auto-sync = Yes
sync-type = calculate

[calculate]
priority = 50
sync-uri = https://github.com/calculatelinux/calculate
location = /var/db/repos/calculate
auto-sync = Yes
sync-type = calculate

[gentoo]
priority = 50
sync-uri = https://github.com/calculatelinux/gentoo
location = /var/db/repos/gentoo
auto-sync = Yes
sync-type = calculate

[custom]
location = /var/calculate/repos/custom
  1. Создадим категорию программ в локальном оверлее:
# mkdir -p /var/calculate/repos/custom/dev-lang/kumir2
  1. Создадим ebuild-файл для Нашей программы (использую mcedit из пакета app-misc/mc, который сразу создаёт отсутствующий файл и позволяет наполнить его. Для создания пустого файла можно использовать touch):
# mcedit /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild
  1. Вставим код ebuild-файла, который можно взять из этого сообщения;

  2. Проверим наполненный Нами файл:

# cat /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild
Спойлер
# cat /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild

# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit rpm

DESCRIPTION="Implementation of Kumir programming language, designed by academician Ershov."
HOMEPAGE="https://www.niisi.ru/kumir/"
SRC_URI="amd64? ( https://mirror.yandex.ru/rosa/rosa2021.1/repository/x86_64/contrib/release/kumir-all-${PV}-7-rosa2021.1.x86_64.rpm )"

LICENSE=""
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="mirror strip"

RDEPEND="
    dev-qt/qtcore:5
    dev-qt/qtgui:5
    dev-qt/qtprintsupport:5
    dev-qt/qtscript:5
    dev-qt/qtsvg:5
    dev-qt/qtx11extras:5
"

DEPEND="${RDEPEND}"

S="${WORKDIR}"

src_unpack() {
    rpm_unpack kumir-all-${PV}-7-rosa2021.1.x86_64.rpm
}

src_install() {
    cp -R "${WORKDIR}/usr" "${D}" || die "install failed!"
}
  1. Создадим manifest для Нашего ebuild:
# ebuild /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild manifest
Спойлер
# ebuild /var/calculate/repos/custom/dev-lang/kumir2/kumir2-2.1.0.ebuild manifest

>>> Downloading 'https://mirror.yandex.ru/rosa/rosa2021.1/repository/x86_64/contrib/release/kumir-all-2.1.0-7-rosa2021.1.x86_64.rpm'
--2024-12-16 06:53:47--  https://mirror.yandex.ru/rosa/rosa2021.1/repository/x86_64/contrib/release/kumir-all-2.1.0-7-rosa2021.1.x86_64.rpm
Resolving mirror.yandex.ru (mirror.yandex.ru)... 213.180.204.183, 2a02:6b8::183
Connecting to mirror.yandex.ru (mirror.yandex.ru)|213.180.204.183|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8931617 (8.5M) [application/x-redhat-package-manager]
Saving to: ‘/var/calculate/distfiles/kumir-all-2.1.0-7-rosa2021.1.x86_64.rpm.__download__’

/var/calculate/distfiles/kumir-all-2.1.0-7-rosa2021. 100%[=====================================================================================================================>]   8.52M  3.34MB/s    in 2.6s    

2024-12-16 06:53:50 (3.34 MB/s) - ‘/var/calculate/distfiles/kumir-all-2.1.0-7-rosa2021.1.x86_64.rpm.__download__’ saved [8931617/8931617]

>>> Creating Manifest for /var/calculate/repos/custom/dev-lang/kumir2
  1. Выполним синхронизацию:
# eix-sync && eix-update
Спойлер
# eix-sync && eix-update

 * Running !-hooks
 * Running /usr/sbin/cl-core --method update --sync-only --skip-eix-update
Repositories synchronization
 * Checking current binhost ...                                                                                                                                                                              [ ok ]
 * Checking Distros updates ...                                                                                                                                                                              [ ok ]
 * Checking Calculate updates ...                                                                                                                                                                            [ ok ]
 * Checking Gentoo updates ...                                                                                                                                                                               [ ok ]
 * Synchronization finished
System configuration
 * Update server http://mirror.mephi.ru/calculate
 * System sync finished!
 * Copying old database to /var/cache/eix/previous.eix
 * Running eix-update
Reading Portage settings...
Building database (/var/cache/eix/portage.eix)...
[0] "gentoo" /var/db/repos/gentoo/ (cache: metadata-md5-or-flat)
     Reading category 170|170 (100) Finished             
[1] "custom" /var/calculate/repos/custom (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) Finished    
[2] "calculate" /var/db/repos/calculate (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) Finished        
[3] "distros" /var/db/repos/distros (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) EMPTY!
Applying masks...
Calculating hash tables...
Writing database file /var/cache/eix/portage.eix...
Database contains 19103 packages in 170 categories
 * Calling eix-diff
[N]   >> dev-lang/kumir2 (~2.1.0) [1]: Implementation of Kumir programming language, designed by academician Ershov.
 * Time statistics:
     2 seconds for syncing
     3 seconds for eix-update
     5 seconds total
Reading Portage settings...
Building database (/var/cache/eix/portage.eix)...
[0] "gentoo" /var/db/repos/gentoo/ (cache: metadata-md5-or-flat)
     Reading category 170|170 (100) Finished             
[1] "custom" /var/calculate/repos/custom (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) Finished    
[2] "calculate" /var/db/repos/calculate (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) Finished        
[3] "distros" /var/db/repos/distros (cache: parse|ebuild*3.0.24#metadata-md5#metadata-flat#assign)
     Reading category 170|170 (100) EMPTY!
Applying masks...
Calculating hash tables...
Writing database file /var/cache/eix/portage.eix...
Database contains 19103 packages in 170 categories

, где увидим, что созданный kumir2 отобразился в добавленных:

 * Calling eix-diff
[N]   >> dev-lang/kumir2 (~2.1.0) [1]: Implementation of Kumir programming language, designed by academician Ershov.
  1. Для наглядности выполним поиск пакета:
# emerge -s dev-lang/kumir2 
Спойлер
# emerge -s dev-lang/kumir2 

Local copy of remote index is up-to-date and will be used.
  
[ Results for search key : dev-lang/kumir2 ]
Searching...

*  dev-lang/kumir2 [ Masked ]
      Latest version available: 2.1.0
      Latest version installed: [ Not Installed ]
      Size of files: 8723 KiB
      Homepage:      https://www.niisi.ru/kumir/
      Description:   Implementation of Kumir programming language, designed by academician Ershov.
      License:       

[ Applications found : 1 ]

, где обратим внимание на то, что пакет замаскирован;

  1. Попробуем выполнить установку:
# emerge -av dev-lang/kumir2 
Спойлер
# emerge -av dev-lang/kumir2 

Local copy of remote index is up-to-date and will be used.

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 1.63 s (backtrack: 0/20).

[binary  N     ] dev-qt/qtprintsupport-5.15.14:5/5.15::gentoo  USE="cups -debug -gles2-only -test" 222 KiB
[binary  N     ] dev-qt/qtscript-5.15.14:5/5.15::gentoo  USE="jit scripttools -debug -test" 1007 KiB
[binary  N     ] app-arch/rpm2targz-2021.03.16::gentoo  25 KiB
[ebuild  N    ~] dev-lang/kumir2-2.1.0::custom  0 KiB

Total: 4 packages (4 new, 3 binaries), Size of downloads: 1253 KiB

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-lang/kumir2 (argument)
=dev-lang/kumir2-2.1.0 ~amd64

Would you like to add these changes to your config files? [Yes/No]

, где увидим, какие зависимости требуется установить, и что требуется принять изменения для keywords;

  1. Принимаем эти изменения, выполняя нижеуказанную команду с нажатием клавиши u:
# dispatch-conf
Спойлер
# dispatch-conf

--- /etc/portage/package.accept_keywords/custom 2024-12-16 06:29:52.650000233 +0000
+++ /etc/portage/package.accept_keywords/._cfg0000_custom       2024-12-16 06:55:52.214738210 +0000
@@ -1 +1,3 @@
 # This file will be migrate to new installation
+# required by dev-lang/kumir2 (argument)
+=dev-lang/kumir2-2.1.0 ~amd64

>> (1 of 1) -- /etc/portage/package.accept_keywords/custom
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge:  
  1. Вот теперь производим установку:
# emerge -av dev-lang/kumir2 
Спойлер
# emerge -av dev-lang/kumir2 

Local copy of remote index is up-to-date and will be used.

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 1.61 s (backtrack: 0/20).

[binary  N     ] dev-qt/qtprintsupport-5.15.14:5/5.15::gentoo  USE="cups -debug -gles2-only -test" 222 KiB
[binary  N     ] dev-qt/qtscript-5.15.14:5/5.15::gentoo  USE="jit scripttools -debug -test" 1007 KiB
[binary  N     ] app-arch/rpm2targz-2021.03.16::gentoo  25 KiB
[ebuild  N    ~] dev-lang/kumir2-2.1.0::custom  0 KiB

Total: 4 packages (4 new, 3 binaries), Size of downloads: 1253 KiB

Would you like to merge these packages? [Yes/No] y
>>> Verifying ebuild manifests
>>> Emerging binary (1 of 4) dev-qt/qtprintsupport-5.15.14::gentoo
>>> Emerging binary (2 of 4) dev-qt/qtscript-5.15.14::gentoo
>>> Emerging binary (3 of 4) app-arch/rpm2targz-2021.03.16::gentoo
>>> Installing (3 of 4) app-arch/rpm2targz-2021.03.16::gentoo
>>> Installing (1 of 4) dev-qt/qtprintsupport-5.15.14::gentoo
>>> Installing (2 of 4) dev-qt/qtscript-5.15.14::gentoo
>>> Completed (3 of 4) app-arch/rpm2targz-2021.03.16::gentoo
>>> Completed (1 of 4) dev-qt/qtprintsupport-5.15.14::gentoo
>>> Completed (2 of 4) dev-qt/qtscript-5.15.14::gentoo
>>> Emerging (4 of 4) dev-lang/kumir2-2.1.0::custom
>>> Installing (4 of 4) dev-lang/kumir2-2.1.0::custom
>>> Recording dev-lang/kumir2 in "world" favorites file...
>>> Completed (4 of 4) dev-lang/kumir2-2.1.0::custom
>>> Jobs: 4 of 4 complete                                               Load avg: 0.59, 0.32, 0.22
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.
  1. Получаем результат:
Спойлер

Я пробовал через vim, у меня не получилось. Попробую через mcedit. Для общего развития, вообще метод создания через текстовый редактор и сохранения с расширением *.ebuild приемлем?

Спасибо за подробную инструкцию, опробую отпишусь.