Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Linux: strace — отслеживаем выполнение процесса

17 февраля 2016
 

 strace — утилита для Linux, которая позволяет отследить выполнение системных вызовов (system call) и сигналов к ядру системы. Для примера возьмем простую программу на С, которая выводит содержимое указанного файла: #include <stdio.h> #include <stdlib.h> int main() { char ch, file_name[25]; FILE *fp; printf(«Enter the name of file you wish to see\n»); gets(file_name); fp = fopen(file_name,»r»);… Читать далее »

C: Declare vs Define в C и C++

8 февраля 2016
 

 Объявление (declaration) и определение (definition) в C и C++ имеют небольшое, но очень важное различие. Если не понимать его — то вас ожидают странные ошибки линкера (LD в GCC — /usr/bin/ld), вроде «undefined symbol foo«, «undefined reference to ‘foo’» или даже «undefined reference to vtable for foo» (в C++). Что такое Объявление в C и C++ Когда вы объявляете переменную, функцию… Читать далее »

Python: requests, JFrog Artifactory и деплой

26 января 2016
 

 Пример скрипта деплоя. Задача скрипта — сохранить результаты билда в Artifactory и деплоить из Artifactory на хост с JBoss. Из «особенностей» — результатом билда являются два *.ear архива разных типов: ${GIT_COMMIT}-${VERSION}-unlock-service.ear — бекенд из одного репозитория; ${GIT_COMMIT}-${VERSION}-unlock-ui.ear — фронтенд из второго репозитория. ${GIT_COMMIT} грепается из git log, ${VERSION} — из файла build.gradle, в котором девелоперы устанавливают версию. В Artifactory… Читать далее »

Jenkins: установка и настройка Maven билда

25 января 2016
 

 Пример ручной установки Jenkins на Vagrant бокс с Ubuntu 14. Добавляем Vagrant машину: $ vagrant init ubuntu/trusty64 Редактируем Vagrantfile: Vagrant.configure(2) do |config| … config.vm.network «forwarded_port», guest: 8081, host: 8081 … config.vm.network «public_network» … config.vm.provider «virtualbox» do |vb| … vb.memory = «2048» … end … end Запускаем и подключаемся: $ vagrant up $ vagrant ssh

Apache HTTP: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe

2 декабря 2015
 

 Ошибка После установки свежего Apache HTTP — возникает ошибка: # apachectl -t [Wed Dec 02 12:32:34.187291 2015] [:crit] [pid 3756:tid 140678182410112] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. AH00013: Pre-configuration failed Action ‘-t’ failed. The Apache error log may have more… Читать далее »

AEM: Adobe Experience Manager — установка и запуск Author и Publish на Ubuntu

13 ноября 2015
 

 AEM (Adobe Experience Manager) — это энтерпрайз CMS (Content Management Solution) от, как понятно из названия, компании Adobe. AEM состоит из двух основных (на самом деле — трёх, есть и Dispatcher — но он в данном случае использоваться не будет) компонентов: Author: инстанс AEM, который применяется для создания, загрузки, редактирования контента и для администрирования сайта. Как только… Читать далее »

Docker: Dockerfile COPY — not a directory

10 ноября 2015
 

 Имеется Dockerfile для билда образа Docker с Java-приложением: FROM java:8 MAINTAINER User «[email protected]» COPY eod-report-0.0.1-SNAPSHOT.jar /opt ENTRYPOINT [«/usr/bin/java», «-jar»] CMD [«/eod-report-0.0.1-SNAPSHOT.jar»] Во время билда на Go CD агенте — сборка падает с сообщением:

Apache Maven: сборка Java Hello World

6 ноября 2015
 

 Пример создания простого Java веб-проекта, сборки и упаковки его с помощью Apache Maven. Установка Maven очень простая и описана, например, тут>>>, хотя пост достаточно старый. Создадим директорию проекта: $ mkdir -p /tmp/maven_example $ cd /tmp/maven_example/

Jetty: установка на Ubuntu

4 ноября 2015
 

 Jetty — еще один контейнер сервлетов, аналог Apache Tomcat. Установка выполняется на: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty Для работы Jetty требуется Java, установка Oracle Java 8 описана тут>>>. Находим последнюю актуальную версию тут>>>.