Pull to refresh

Установка клиента DataStage

Reading time3 min
Views4.3K
Я думаю, что многие сталкивались с некоторыми проблемами при установке IBM DataStage на клиентские рабочие станции. Перед установкой, ваша система должна выдержать ряд тестов на соответствие требованиям, которые предъявляются к ОС, пользователю, из под которого осуществляется установка, к «железу». Не всегда проверка возвращает адекватные результаты.
Вашему вниманию представлены некоторые пути обхода криво реализованных проверок очередного инсталятора компании IBM, пытающийся установить клиент к Information Server 8.5, в который входят клиенты для DataStage.

Первая проблема


Первая проблема, которая возникает — это то, что установщик не может понять, что пользователь, под которым вы работаете входит в административную группу в том случае, если в имени группы или в имени пользователя есть кириллические символы. Например, если пользователь называется «Администратор» и входит в локальную группу «Администраторы», то для установщика будет непосильным трудом определить, что этот пользователь… кхм… администратор.
Решается это просто — необходимо переименовать и пользователя и группу. Дать им имена без кириллических символов. Не знаю, подойдут ли другие значения (не удивлюсь, если нет), но я пробовал давать следующие имена:
Имя пользователя: Administrator (оно может быть, в принципе, и другим. Например, Nick)
Имя группы: Administrators
Менять соответствующие параметры можно в Мой Компьютер->Управление->Локальные пользователи и группы.

Вторая проблема


Установщик требует, чтобы на компьютере, на котором устанавливается клиент, было как минимум 2 Гб. оперативной памяти. В случае, если ее меньше — он не даст вам продолжить установку. Ну надо, так надо, учитывая, что у меня как раз 2 Гб памяти. Он упрямо утверждал, что у меня «всего лишь 1Gb»…
Зная, что инсталятор представляет собой серверное приложение, которое запускается из под поднимаемого сервера Jetty, я начинаю смутно понимать, что вряд ли он сможет вычислить объем RAM без помощи сторонних утилит. Ява машина, на сколько я помню, не дает узнать объем оперативной памяти.
Начинаем расковыривать jar-ники, которые использует установщик. Нас интересует файл com.ibm.is.install.atlasinstaller.engine_1.0.0.jar, которые находится в %DISTRIB_DIR%\server\webapps\webui\WEB-INF\eclipse\plugins, где %DISTRIB_DIR% — место, где располагается дистрибутив. Открываем этот файл и ищем класс com\ibm\is\install\core\util\SystemSize.class. Именно в нем определяется размер оперативной памяти.
В ветке для Windows мы можем обнаружить следующую строчку:

if(Platform.getInstance().isWindows())
        {
            workingDir = (new StringBuilder()).append(installerRootDir).append(File.separator).
append("tools").toString();
            command = (new String[] {
                (new StringBuilder()).append(installerRootDir).append(File.separator).
append("tools").append(File.separator).append("SystemSize.exe").toString()
            });

Т.е. для определения размера RAM запускается отдельный EXE-шник SystemSize.exe, который находится в %DISTRIB_DIR%\tools

(Объем RAM в линукс в этом скрипте определяется так: /bin/sh", "-c", «free | head -2 | tail -1 | awk {'print $2/(1024 * 1024)'} )
Запускаем это приложение и видим, что в моем случае оно выдает 1.98. Т.е. установщик „смотрит“ только на целую часть возвращаемого значения.
Ну ладно. Пишем свое приложение. В данном случае я написал на C++:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout<<"2.0";
    return EXIT_SUCCESS;
}


Компилируем, даем имя SystemSize.exe и помещаем в %DISTRIB_DIR%\tools. Все, теперь проверка успешно проходит.
Tags:
Hubs:
Total votes 4: ↑4 and ↓0+4
Comments0

Articles