Последнее обновление:
August 9, 2018

Есть мысль... Жми, напиши!
Что имеем: Постов : 178 Авторов: 1 Категорий: 38

Bareos 18.2, компиляция из исходников

Понадоиблось тут Bareos под ARM платформу скомпилировать, которая стоит на домашнем NAS.

Впринципе, всё просто, за исключением нескольких мелочей.

Для использования bareos-webui необходимо скомпилить вместе с Jansson, а для этого его нужно получить, собрать, установить и показать конфигуратору bareos где он лежит:

sudo apt-get install pkg-config
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install build-essential
git clone https://github.com/akheron/jansson
cd jansson
autoreconf -i
./configure
make
make install
cd ../

Если используется Debian 8, то поставим нужный cmake и g++ 6:

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list
sudo apt-get install g++-6
sudo apt-get install cmake

sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-6 30
sudo update-alternatives --set c++ /usr/bin/g++
update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-6 20
update-alternatives --set cc /usr/bin/gcc-6

c++ --version //-- Вывод должен быть 6.4.0 (не ниже и точно не 7 или 8 - не скомпилится)
cmake --version //-- Вывод должен быть 3.11.2 (не ниже)

Ну а дальше всё просто — качаем исходники Bareos, компилим, собираем всё это в deb пакет, что бы потом не парится с новыми версиями:

git clone https://github.com/bareos/bareos/ -b bareos-18.2
cd bareos/core
dpkg-checkbuilddeps //-- установите все зависимости из вывода

cp -a platforms/packaging/bareos.changes debian/changelog
VERSION=$(sed -n -r 's/#define VERSION "(.*)"/\1/p'  src/include/version.h)
dch -v $VERSION "Switch version number"
fakeroot debian/rules binary

Если будет ошибка «dpkg-shlibdeps: error: no dependency information found for …«,
то в файле «core/debian/rules» ищем строку «dh_shlibdeps» и дополняем опцией «—dpkg-shlibdeps-params=—ignore-missing-info»

Не забудьте установить новый пароль для root в mysql!

Устанавливаем теперь созданные пакеты:

cd ../

//-- Всё, что нужно для директора (bareos-dir):
apt-get install dbconfig-common
dpkg -i bareos-database-common_18.2.3_armel.deb
dpkg -i bareos-database-mysql_18.2.3_armel.deb
dpkg -i bareos-database-tools_18.2.3_armel.deb
dpkg -i bareos-director_18.2.3_armel.deb
dpkg -i bareos-bconsole_18.2.3_armel.deb

//-- Хранилище (bareos-sd):
dpkg -i bareos-storage_18.2.3_armel.deb
//-- Клиент (bareos-fd)
dpkg -i bareos-filedaemon_18.2.3_armel.deb
dpkg -i bareos-client_18.2.3_armel.deb

Запускаем:

sudo service bareos-sd start
sudo service bareos-fd start
sudo service bareos-dir start

Если будет ошибка «/sbin/bareos-dir: symbol lookup error: /sbin/bareos-dir: undefined symbol: _Z16DbSetBackendDirsP5alist»
то тогда нужно чутка изменить ссылки, что бы bareoscats.so.18 указывала на backends/bareoscatsmysql.so  — пять часов на выяснение причин потратил.

Теперь поставим «Bareos WEBUI».
Ставим необходимые для сборки пакеты и аналогично собираем в deb пакет:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-get install autotools-dev apache2-dev apache2-prefork-dev
sudo apt-get install php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-pdo-mysql php7.1-xml php7.1-zip
sudo apt-get install libapache2-mod-php7
service apache2 restart
cd webui
dpkg-checkbuilddeps
cp -a packaging/obs/bareos-webui.changes debian/changelog
fakeroot debian/rules binary

Устанавливаем созданный пакет:

cd ../
dpkg -i bareos-webui_15.2.1_all.deb

Ну и можно зайти, в браузере набираем:

http://127.0.0.1/bareos-webui

По настройке будет отдельный пост.

Вот и всё =)

Views :

67

Компиляций libusb из исходников на Windows

Тут особо нечего рассказывать, всё не так трудно, поэтому минимум комментов.

Качаем MSYS2, ставим, запускаем  C:\msys32\mingw32.exe

pacman -Syu
pacman -Su
pacman -S git
pacman -S base-devel 
pacman -S libtool
pacman -S mingw-w64-i686-toolchain

touch /e/LibUSB2
cd /e/LibUSB2/
git clone https://github.com/libusb/libusb .
./autogen.sh
touch build-Win32
cd build-Win32
touch bin
../configure --prefix=/e/LibUSB2/build-Win32/bin --build=i686-w64-mingw32 --host=i686-w64-mingw32
make -j4
make install

Вся либа будет в /e/LibUSB2/build-Win32/bin.

Вот как-то так =)

Views :

171

OpenCV 3.1 захват видео с камеры в Qt 5.6

Надеюсь, компиляция прошла успешно =)

Обновил на новый лад с использованием Mat

Создаём новый консольный проект, в .pro файле дописываем:

INCLUDEPATH += "/usr/local/opencv/3.1/include/"
LIBS += -L"/usr/local/opencv/3.1/lib/"
LIBS += -lopencv_core \
        -lopencv_features2d \
        -lopencv_highgui \
        -lopencv_imgcodecs \
        -lopencv_imgproc \
        -lopencv_video \
        -lopencv_videoio \
        -lopencv_videostab

Теперь основное main.cpp:

#include <QApplication>
#include <QDebug>

#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    qDebug()<<"Hello world";

    //-- Выбираем первую попавшуюся камеру
    VideoCapture cap(0);

    //-- Проверяем, удалось ли подключиться
    if (!cap.isOpened()) {
        qDebug()<<"Camera not opened!";
        return 0;
    }

    //-- Выставляем параметры камеры ширину и высоту кадра в пикселях
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 960);

    Mat frame;

    while (true) {
        cap >> frame; //-- захватываем очередной кадр

        imshow("Video", frame); //-- показываем его

        char c = cvWaitKey(33); //-- если была нажата клавиша, узнаём её код

        if (c==27) { //-- нажата ESC, прерываем цикл
            break;
        }

    }


    return app.exec();
}

Впринципе, ничего сложного.

Views :

5221