Очередная книжка (PDF, 4.7 MB). СПРАВОЧНИК ПО СИСТЕМНЫМ ПРОГРАММАМ. Распознанный слой есть.
Год не известен, ISBN не достоверен.
Очередная книжка (PDF, 4.7 MB). СПРАВОЧНИК ПО СИСТЕМНЫМ ПРОГРАММАМ. Распознанный слой есть.
Год не известен, ISBN не достоверен.
Ниже будет рассмотрен ворклог обновления существующей инсталляции DSpace, выполненной по технологии, описанной в моих прошлых статьях. Пути, системные переменные и пр. вещи соответствуют таковым в прошлых статьях.
В данном конкретном примере будет обновляться Dspace 4.1. Небольшая оговорка — в данной инсталляции dspace, tomcat и pgsql «живут» в c:\service, а java, maven и ant — в c:\runtime.
0.1. Бэкап assetstore — копируем [dspace]\assetstore куда-нибудь
0.2. Бэкап [dspace] — копируем [dspace] куда-нибудь (можно совместить с предыдущим пунктом, если расположение стандартное)
0.3. Бэкап кастомизированных webapps — копируем [tomcat]\wbapps\ куда-нибудь
0.4. Бэкап базы данных — в принципе, сделать дамп можно и с помощью графической утилиты PGadminIII, но я делаю бэкап базы в рамках такого вот батника:
Данный код создаёт в в c:\backups\ папку с именем ГГГГ.ММ.ДД_ЧЧММСС и в ней папки db, content и metadata соответственно с базой, контентом в формате METS и метаданными в CSV. Подробнее об этом можно почитать в статье про Бэкап.
Нам понадобится:
1.1 Дистрибутив DSPACE 5.3 (dspace-5.3-src-release.zip)
1.2 Дистрибутив JDK 8 (jdk-8u60-windows-x64.exe)
1.3 Дистрибутив Apache Maven 3.0.5 или новее.
1.4 Apache Ant 1.8 или новее
1.5 Apache tomcat 7.0.30 или новее
Собственно, все требования по runtime описаны тут и нужно проверить версии уже установленного софта.
После удаления старой версии JDK и установки новой (я ставлю по примеру старых инструкций в c:\runtime\jdk и c:\runtime\jre) нужно дать команды:
И убедиться во-первых что все пути работают, и во-вторых, что с версиями у нас всё в порядке.
Версию Tomcat можно проверить руками, если Tomcat нуждается в обновлении, не забудьте сохранить server.xml и пр. конфигурационные файлы, при обновлении старая директория удаляется.
2.1. Извлекаем исходники в c:\runtime\dspace-5.3-src-release. По картинке видно, что изначально на машине был установлен Dspace 4.0, а потом обновлен до 4.1.
2.2. Вносим необходимые изменения в c:\runtime\dspace-5.3-src-release\build.properties. Идея появления данного файла в том, чтобы избавить пользователя от правок dspace.cfg и некоторых других конфигов в процессе сборки. Все критичные переменные dspace собраны в одном файле. Как показывает практика, оно в общем работает, но есть частности. Мой поправленный вариант выглядит как-то так:
Тут нужно обратить внимание на то, что порт у меня по умолчанию 80, а JSPUI будет лежать в ROOT, поэтому dspace.url и dspace.base.url одинаковые.
2.3. Вноисм необходимые изменения в c:\runtime\dspace-5.3-src-release\dspace\config\dspace.cfg
Т.к. build.properties не даёт явно задать assetstore и некоторые другие параметры, придётся править конфиг. На данном этапе я вовсе рекомендую не надеяться на переменные и казуальное их хранилище в виде build.preperties, а открыть одновременно оба dspace.cfg, старый и новый и сравнить их построчно. Такой способ позволит не забыть никакую модификацию или кастомизацию.
Как минимум стоит обратить внимание на эти параметры, даже если Вы ничего не меняли в dspace.cfg ранее.
3.1. Еще раз перечитываем это
3.2. Читаем это
3.2. cd c:\runtime\dspace-5.3-src-relese\dspace && mvn -U clean package
Если по каким-то причинам нужен Oracle, Mirage2, LNI или еще что-то из нестандартного — внимательно читаем пункт 4
Ну а теперь можно откинуться на спинку стула и понаблюдать за тем как maven собирает дистрибутив. На данном этапке как и прежде из сети скачивается около гигабайта исходников и деплоятся пакеты.
4.1. Убеждаемся что Tomcat остановлен… ну мало ли, у меня просто запущен был 🙂
4.2. cd c:\RUNTIME\dspace-5.3-src-release\dspace\target\dspace-installer && ant update
4.3. Обновляем базу — C:\SERVICE\PGSQL\bin\psql.exe -U dspace -f c:\SERVICE\DSPACE\etc\postgres\update-sequences.sql
После этого потребуется ввести пароль на базу данных (тот что в db.password в build.properties)
4.4. даём команду dspace database migrate
Дождавшись её выполнения идём в c:\service\dspace\log\dspace.log.ТЕКУЩАЯ_ДАТА, находим в нём строки в самом конце
радуемся.
4.5. Даём команду dspace index-db-browse -f -d дожидаемся её выполнения.
4.6. Даём команду dspace cleanup -v дожидаемся её выполнения. Убеждаемся что либо сообщений об очистке нет, либо они все успешные.
Всё это можно делать на не обновлённых webapps и с выключенными tomcat.
5.1. Копируем jspui, oai и solr из c:\service\dspace\webapps в c:\service\tomcat\webapps
5.2. Запускаем Tomcat, ждем некоторое время, проверяем что у нас на http://ИМЯРЕК
5.3. Даём команды dspace stats-util -o && dspace oai import -o && dspace index-discovery -o
А дальше работа по кастомизации интерфейса, переносу настроек и пр…. но это уже совсем другая история.
В общем, всё стало попроще и поконтрастнее. Буквы стали побольше, а спамботами стало чуть сложнее спамботить.
Прошу понять и простить.
Серия маршрутизаторов Keenetic от Zyxel лет пять назад стала буквально революцией на рынке потребительских устройств данного класса. В линейке есть устройства практически для каждого, от недорогих «переходников» с Ethernet/3G на WIFi до серьезных устройств с двухдиапазонным беспроводным модулем и серьезным процессором. Помимо приемлемой, хоть и не низкой цены, грамотного позиционирования и доступности в продаже у данных устройств есть еще одно очень важное достоинство — платформа NDMS.
Официальное описание NDMS достаточно скупо — Предоставляет базовые возможности коммутирования, маршрутизации и фильтрации трафика. Также содержит интерпретатор командной строки и web-интерфейс. Но на практике это одна из лучших операционных сред для домашних роутеров. Об одной маленькой особенности NDMS я хотел бы сейчас рассказать.
В моей домашней сети есть маршрутизатор Zyxel Keenetic первого поколения. Он работает на резервном провайдере, который так же является поставщиком IP телевидения (IGMP MultiCast). Помимо телевидения канал практически ни кем и ни чем не используется.
Во время падения основного канала, в резервный лезут торренты, трафик с ютьюба и пр. и телевизоры начинают заикаться. Нужно сказать что телевизоров у меня два и по ним частенько смотрятся два разных HD канала.
Разбор полётов показывает что даже 100 соединений торрент клиента в NAT или UPnP загружают процессор роутера на 100% и всё становится плохо. Установка компонента «Аппаратный обработчик пакетов» с ходу результатов не приносит. В NDMS первой версии после установки данного компонента появлялась «галочка» его активации, в NDMS второй версии ничего подобного не появляется. Сначала я решил что оно активируется само, но не всё так просто.
Для начала нужно обратиться к этой статье. В ней описана процедура установки и активации. Если в двух словах:
Мягко говоря не тривиально, но и это еще не всё. После перезагрузки роутера штатно из CLI, web-интерфейса или по питанию, NAT опять станет «программным». Чтобы настройки сохранились, сразу после команды ppe нужно дать команду system config-save.
С таким твиком 1000 соединений в uTorrent с загрузкой в 10 Мегабайт в секунду и отдачей в 8 Мегабайт (тариф формально симметричный 99/99Mbps, но реально результаты чуть ниже) процессор роутера загружен на 0%. Всю работу на себя берет NAT сопроцессор. В результате пара приставок MAG245, показывающая пару FullHD каналов и торренты не пересекаются, ресурсов роутера хватает и ничего не тормозит и не виснет.
Ну и небольшое отступление. Роутер построен на базе процессора RT3052. На такой же аппаратной базе построен роутер моего провайдера SNR-CPE-W4n. О том что аппаратный NAT есть и он работает я узнал именно после изучения web-интерфейса SNR-CPE-W4n. Только вот незадача — при активации hardware NAT у роутера SNR через непродолжительное время случается зависание, а Zyxel работает сутками.
Общение с поддержкой Zyxel относительно причин по которым активация NAT сопроцессора была спрятана так глубоко и не вызвано ли это какими-то проблемами в RT3052 пока не дало результатов.
Очередная книжка (PDF, 19 MB). Программное обеспечение персональных ЭВМ. Распознанный слой есть.