Установка МойОфис Стандартный Домашняя версия через ebuild

Здравствуйте!
МойОфис распространяют через пакеты deb и rpm, поэтому на базе ebuild-1.28.0.4 ниже описание решения.

Предполагается, что вы знаете как создать локальный overlay.

Внутри локального overlay нужно создать директории: app-office/myoffice
Создать файл с именем myoffice-2.3.0.ebuild (на текущий момент, такая версия на странице проекта)

содержимое myoffice-2.3.0.ebuild
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit xdg unpacker

DESCRIPTION="office"
HOMEPAGE="https://myoffice.ru/products/standard-home-edition/"
#SRC_URI="https://preset.myoffice-app.ru/myoffice-standard-home-edition_2022.01-${PV}_amd64.deb"

SRC_URI=“https://preset.myoffice-app.ru/myoffice-standard-home-edition_${PV}_amd64.deb

SLOT="0"
KEYWORDS="~amd64"
IUSE=""

# needs full qt stack
RDEPEND="dev-qt/qtwidgets:5"

RDEPEND=“media-libs/libpulse”

S=${WORKDIR}

src_unpack() {
	unpack_deb ${A}
}

src_compile() { :; }

make_wrapper_my() {
	local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5
	local tmpwrapper="${T}/tmp.wrapper.${wrapper##*/}"

	(
	echo '#!/bin/bash'
	if [[ -n ${libdir} ]] ; then
		local var
		if [[ ${CHOST} == *-darwin* ]] ; then
			var=DYLD_LIBRARY_PATH
		else
			var=LD_LIBRARY_PATH
		fi
		sed 's/^X//' <<-EOF || die
			if [ "\${${var}+set}" = "set" ] ; then
			X	export ${var}="\${${var}}:${EPREFIX}${libdir}"
			else
			X	export ${var}="${EPREFIX}${libdir}"
			fi
		EOF
	fi
	[[ -n ${chdir} ]] && printf 'cd "%s" &&\n' "${EPREFIX}${chdir}"
	# We don't want to quote ${bin} so that people can pass complex
	# things as ${bin} ... "./someprog --args"
	printf '%s "$@"\n' "${bin/#\//${EPREFIX}/}"
	) > "${tmpwrapper}"
	chmod go+rx "${tmpwrapper}"

	if [[ -n ${path} ]] ; then
		(
		exeopts -m 0755
		exeinto "${path}"
		newexe "${tmpwrapper}" "${wrapper}"
		) || die
	else
		newbin "${tmpwrapper}" "${wrapper}"
	fi
}

src_install() {
	dodir /opt
	cp -pPR "${S}/usr/local/bin/myoffice-standard-home-edition" "${D}/opt/" || die
	make_wrapper_my myoffice-text "QT_PLUGIN_PATH=/opt/myoffice-standard-home-edition/lib/ /opt/myoffice-standard-home-edition/MyOffice\ Text\ Home\ Edition.sh"
	make_wrapper_my myoffice-spreadsheet "QT_PLUGIN_PATH=/opt/myoffice-standard-home-edition/lib/ /opt/myoffice-standard-home-edition/MyOffice\ Spreadsheet\ Home\ Edition.sh"
}

Шрифтом выделены изменения относительно исходного ebuild
(libpulse требуется для удовлетворения зависимости libpulse-mainloop-glib.so.0)

Далее находясь в путь_лок.overlay/app-office/myoffice запустить

ebuild myoffice-2.3.0.ebuild manifest

Загрузиться пакет МойОфис и создастся файл Manifest

Установка МойОфис

emerge -av --autounmask myoffice

Будет вопрос внести изменения в package.use, командой ниже можно обновить флаги

dispatch-conf

После установки нужно сделать ссылки в меню оконного менеджера или запускать командами myoffice-text и myoffice-spreadsheet

1 Like

Многие ли домашние пользователи юзают сабж?

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

Вот это уж вряд ли, домашние версии в организации никто использовать не будет :money_mouth_face:

я привел пример как установить через ebuild, здесь всплывала тема как установить версию для образовательных учреждений.
У меня нет возможности искать иные версии МО, кроме той что представлена на сайте в свободном доступе.

Вы в каждом посте к непонятным вам программам пишете “ненужно”, это как то помогает в разделе форума Руководства?

Про “ненужность” Вам никто слова не сказал :wink:

Но “домашников” с организациями смешивать всё же не стоит.

Извиняюсь, ежели вопрос глупый, я на кальке не так давно, учусь. Может не понял чего, но …
Зачем локальный оверлей? Разве оттуда установить нельзя?

Когда начинал изучать, то по первой составил такую инструкцию, потом мне подсказали способ проще, через подключение оверлея.

sudo wget <ссылка на ebuild> (скачает ebuild-файл, командой ls убедится в успешной загрузке)
sudo ebuild имя.ebuild digest (создаёт манифест в папке, проверить командой ls)
sudo ebuild имя.ebuild unpack (распаковка исходных кодов)
sudo ebuild имя.ebuild compile (компиляция исходных кодов)
sudo ebuild имя.ebuild install (установка во временное хранилище)
sudo ebuild имя.ebuild qmerge (перенос в рабочую ОС)
sudo ebuild имя.ebuild clean (очищает временное хранилище)

Вы написали как делать ручками emerge, что вполне подход )
Также стоит отметить, что если ebuild поместить в gentoo overlay, то после emerge --sync (или cl-update) он затрется.

Подход с локальный overlay удобен для программ, которых нет в главном репозитории и ebuild надо искать/писать/править.
У меня так лежат ebuild’ы для fheroes2, etlegacy, vcmi - когда выходит новая версия можно скопировать ebuild, изменив версию, и обновиться. Если не меняли зависимости и источника исходников, то все будет работать штатно.

1 Like

Чтобы sys-apps/portage знал где искать ебилд если вы вдруг захотите сделать например пересборку Мира (emerge -e @world).
Ваша инструкция - она для разработки правильно работающих ебилдов. Но в конце правильные ебилды должны храниться там где их ожидает увидеть емерже - в правильно структуированом дереве портажа или оверлея.

На свежую версию билд.

В топике ошибка на каталог сборки и не копируется, вот в этой строке

cp -pPR “${S}/usr/local/bin/myoffice-standard-home-edition” “${D}/opt/” || die

надо:

cp -pPR “${S}/opt/myoffice-standard-home-edition” “${D}/opt/” || die

Скорее всего не ошибка в предыдущем ebuild, а в новой версии разработчик изменил пути к приложению, для чего ebuild нужно изменять под эти требования.

Кстати, какая версия нынче актуальная?

1 Like

2.7.0 толькол из печки, но баги остались как в 2.1.0

1 Like