Установка OpenOffice.org из deb пакетов

Автор dr.Faust, 6 июня 2010, 17:39

0 Пользователи и 1 гость просматривают эту тему.

dr.Faust

Скрипт автоматической установки ООо из файлов *.tar.gz содержащих deb-пакеты.
Есть отчаянные головы желающие попробовать?
Просто скормите ему архив.
Ругайте, совершенствуйте.

#!/bin/bash

# Скрипт установки OpenOffice.org из deb пакетов
# Скрипт доступен на условиях GNU GPL. Автор dr.Faust e-mail: dr_faust@inbox.ru

# Для включения режима отладки раскомментировать следующую строку
#set -x
#ARGS=1
#if [ $# -ne "$ARGS" ]
if [ ! -r "$1" ]
then
echo "________________________________"
echo "Неправильное использование скрипта."
echo "Вы должны использовать комманду похожую на:"
echo "'"$0"' '~/путь_к_файлу_дистрибутива' (обычно что-то навроде OOo_3.x.x_Linux_x86_install-deb_ru.tar.gz)"
echo "Загрузить необходимые архивы можно со следующих страниц:"
echo "http://go-oo.org/download/"
echo "http://download.openoffice.org/index.html"
echo "http://i-rs.ru/Skachat"
echo "________________________________"
exit 64
fi
if [ -e $1 ]
then
# Установим временный каталог для распаковки архива
TMPDIR=/tmp/OOo-packets
# Если католог существует - будем искать альтернативу...
if [ -f "$TMPDIR" ]
then
n=1
TMPDIRal=$TMPDIR$n
while [ -e "$TMPDIRal" ]
do
n=$(expr $n + 1)
#let "n=n+1"
TMPDIRal=$TMPDIR$n
done
TMPDIR=$TMPDIRal
fi
mkdir $TMPDIR
# Временный каталог выбран и создан

# Распакуем архив...
if [ -d "$TMPDIR" ]
then
echo "Распаковываем архив..."
tar -xvf $1 --directory=$TMPDIR
else
echo "Невозможно создать  временный каталог для распаковки."
echo "Выход."
exit 88
fi

# Будем искать папку DEBS во временном каталоге...
if [ -d "$TMPDIR"/DEBS"" ]
then
DEBSDIR=$TMPDIR"/DEBS"
else
# ... и его подкатологах
DISDIRS=( `ls $TMPDIR` )
for DISDIR in ${DISDIRS[@]}
do
echo $DISDIR
if [ -e "$TMPDIR"/"$DISDIR"/DEBS"" ]
then
DEBSDIR=$TMPDIR"/"$DISDIR"/DEBS"
fi
done
fi

# Выйдем из сценария если такая папка не найдена
if [ $DEBSDIR == "" ]
then
echo "Неизвестный архив дистрибутива - директория DEBS не найдена."
exit 71
fi
echo "Директория DEBS найдена."

echo "Проверяем наличие Java."
if dpkg -s sun-javadb-client | grep "Status: install ok installed"
then
echo "Java уже установлена."
else
echo "Устанавливаем Java."
sudo apt-get install -y sun-javadb-client
if dpkg -s sun-javadb-client | grep "Status: install ok installed"
then
echo "Java установлена."
else
echo "Что-то пошло не так при установке Java."
echo "Попробуем ещё раз..."
sudo apt-get install -y sun-javadb-client
fi
fi

# Удаляем профили ООо
echo "Удаляем пользовательские профили OOo..."
echo "Для продолжения необходим пароль"
sudo rm -rf /home/*/.openoffice.org

echo "Удаляем предыдущую версию OpenOffice.org"
sudo apt-get purge -y openoffice.org-core openoffice.org-common openoffice.org-l10n-* ure uno-libs3

echo "Устанавливаем OpenOffice.org"
sudo dpkg -i "$DEBSDIR"/*.deb""
sudo dpkg -i "$DEBSDIR"/desktop-integration/*.deb""

# Убираем мусор
rm -rf $TMPDIR
exit 0
else
echo "________________________________"
echo "Файл архива "$1" не существует."
echo "Вы должны использовать комманду похожую на:"
echo "'"$0"' '~/путь_к_файлу_дистрибутива' (обычно что-то навроде OOo_3.x.x_Linux_x86_install-deb_ru.tar.gz)"
echo "Загрузить необходимые архивы можно со следующих страниц:"
echo "http://go-oo.org/download/"
echo "http://download.openoffice.org/index.html"
echo "http://i-rs.ru/Skachat"
echo "________________________________"
exit 65
fi
Свобода информации - свобода личности!

prof-alex

#1
Насчёт временного каталога. Всё украдено придумано до нас:
ЦитироватьNAME
      mktemp - create a temporary file or directory

SYNOPSIS
      mktemp [OPTION]... [TEMPLATE]

DESCRIPTION
      Create  a  temporary file or directory, safely, and print its name.  TEMPLATE must contain at least 3 con-
      secutive `X's in last component.  If TEMPLATE is  not  specified,  use  tmp.XXXXXXXXXX,  and  --tmpdir  is
      implied.

      -d, --directory
             create a directory, not a file

      -u, --dry-run
             do not create anything; merely print a name (unsafe)

      -q, --quiet
             suppress diagnostics about file/dir-creation failure

      --suffix=SUFF
             append SUFF to TEMPLATE.  SUFF must not contain slash.  This option is implied if TEMPLATE does not
             end in X.

      --tmpdir[=DIR]
             interpret TEMPLATE relative to DIR.  If DIR is not specified, use $TMPDIR if set, else /tmp.   With
             this  option, TEMPLATE must not be an absolute name.  Unlike with -t, TEMPLATE may contain slashes,
             but mktemp creates only the final component.

      -p DIR use DIR as a prefix; implies -t [deprecated]

      -t     interpret TEMPLATE as a single file name component, relative to a directory: $TMPDIR, if set;  else
             the directory specified via -p; else /tmp [deprecated]

      --help display this help and exit

      --version
             output version information and exit
Т.е. хватило бы TMPDIR=`mktemp -d -t OOo-packets.XXXXXX` || { echo "Не удалось создать временный каталог!" >&2 ; exit 1; }

Удаление пользовательского профиля разве не нужно делать отключаемым? Вдруг кого-то это не устроит. Да и само расположение профиля иногда разнится, можно не попасть.

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра