27 lipca, 2010
OpenOffice.org - wiele instalacji równoczesnie (Linux, rpm)
Napisane w: Biuro i DTP, OpenOffice.org / LibreOffice, Techblog (0) Otagowane: openoffice.org parallel_install howto,
W celu zapoznania się z tym, co będzie w kolejnej wersji OpenOffice.org możemy sięgnąć po wersje testowe (Developer Snapshot). Jeśli nie tworzymy specjalnego środowiska testowego, to na ogół nie chcemy pozbywać się stabilnej wersji a testową zainstalować obok. Pod Linuksem możemy mieć równocześnie zainstalowaną wersje stabilną oraz testową z linii ooo-dev. Czasem jednak przydaje się możliwość dostępu do większej liczby alternatywnych instalacji. Za radą kolegi Quest-88 odwiedziłem stronę Wiki OpenOffice.org: How to run different OpenOffice.org versions in parallel, gdzie jest opisane jak sobie z tym problemem poradzić. Na podstawie tego opisu przygotowałem prosty skrypt w bashu, automatyzujący instalację. Dla pewności należy go jeszcze uzupełnić o testy nieprawidłowych wartości parametrów czy też obsługę sytuacji wyjątkowych.
Skrypt wymaga trzech parametrów:
- katalog docelowy instalacji
- nazwa bazowa:
- ooo-dev - dla wersji developer snapshot
- openoffice.org - dla wersji stabilnych
- plik *.tgz
insoo.sh /opt/oo33 ooo-dev /tmp/OOo-Dev_DEV300m84_Linux_x86-64_install-rpm_en-US.tar.gz
Zawartość skryptu insoo.sh:
#!/bin/bash
# ustawienia
OOBASEDIR="$1"
OOBASENAME="$2"
OOTGZ="$3"
if [ ! -e "${OOTGZ}" ]
then
echo "Brak pliku tarball"
exit -1
fi
OOFONTDIR=${OOBASENAME}/basis3.3/share/fonts
BOOTSTRAP=${OOBASENAME}3/program/bootstraprc
OOVERDIR=` tar tzf "${OOTGZ}"| head -n 1`
# informacje
echo Instalacja OpenOffice.org
echo =========================
echo "Plik instalacyjny: ${OOTGZ}"
echo "Nazwa katalogu w tarball: ${OOVERDIR}"
echo "Katalog docelowy: ${OOBASEDIR}"
echo "Nazwa OpenOffice.org: ${OOBASENAME}"
echo ""
# instalacja
mkdir -p "${OOBASEDIR}"
pushd "${OOBASEDIR}" > /dev/null
tar xzf "${OOTGZ}"
for i in ${OOVERDIR}/RPMS/o*.rpm; do rpm2cpio "$i" | cpio -id; done
mv opt/* .
rm -r opt "${OOVERDIR}"
# przeniesienie katalogu z ustawieniami użytkownika
# do ${OOBASEDIR}/users
perl -pi -e 's|(UserInstallation=).*|\1\$ORIGIN/../..|' ${BOOTSTRAP}
# konfiguracja fontów, brakujące wpisy OO.org 3.3.x
mkdir -p "${OOFONTDIR}/type1"
mkdir -p user/fonts
cat > "${OOFONTDIR}/type1/fc_local.conf" << FONTCFG
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "/etc/fonts/conf.d/fonts.dtd">
<fontconfig>
</fontconfig>
FONTCFG
cat > user/fonts/fc_local.conf << FONTCFG
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "/etc/fonts/conf.d/fonts.dtd">
<fontconfig>
</fontconfig>
FONTCFG
popd > /dev/null
echo ""
echo "Wywołanie programu: ${OOBASEDIR}/${OOBASENAME}3/program/soffice"
# pierwszy start
${OOBASEDIR}/${OOBASENAME}3/program/soffice
