KVM Virtualization in RHEL 7 Made Easy
A Dell Technical White Paper
http://linux.dell.com/files/whitepapers/KVM_Virtualization_in_RHEL_7_Made_Easy.pdf
четверг, 26 апреля 2018 г.
четверг, 19 апреля 2018 г.
CentOS: добавляем самоподписанные сертификаты в доверенные
Добавляем самоподписанные сертификаты (self-signed certs) в доверенные
cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
И полезные ссылки
https://unix.stackexchange.com/questions/90450/adding-a-self-signed-certificate-to-the-trusted-list/438698
https://serverfault.com/questions/730006/how-do-i-trust-a-self-signed-certificate
cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
И полезные ссылки
https://unix.stackexchange.com/questions/90450/adding-a-self-signed-certificate-to-the-trusted-list/438698
https://serverfault.com/questions/730006/how-do-i-trust-a-self-signed-certificate
среда, 28 февраля 2018 г.
Hetzner, debian и KVM (который виртуалки)
Есть оф дока
https://wiki.hetzner.de/index.php/KVM/enНо кроме 1 строки
https://wiki.hetzner.de/index.php/KVM/enНо кроме 1 строки
route add -host zzz.zzz.zzz.zz1 dev br0
она бестолковая. Впрочем, и сейчас эта строка будет выглядеть иначе:
ip route add zzz.zzz.zzz.zz1 dev br0 scope link
ip route add zzz.zzz.zzz.zz1 dev br0 scope link
Суть? Это машины в 1 сети, а хецнер рубит неизвестные ему маки.
Но это даст только возможность ходить с хоста на виртуалку. Чтобы можно было попасть туда из мира, есть несколько вариантов
Где самый простой -- запросить мак в саппорте для kvm. Но также возможно поднять tun, изучить proxy_arp и поднять nat, 1 к 1 на виртуалку - будет выглядеть как настоящий доступ.
вторник, 13 февраля 2018 г.
Ubuntu: cmake 3.0+
https://launchpad.net/~george-edison55/+archive/ubuntu/cmake-3.x
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
понедельник, 12 февраля 2018 г.
среда, 7 февраля 2018 г.
CentOS 7: собираем libtgvoip
За основу хорошо заходят 2 пакета:
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-1.0.3-1.fc27.x86_64.html
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-devel-1.0.3-1.fc27.x86_64.html
Также нужны mock и gyp с поддержкой cmake
mock -r epel-7-x86_64 rebuild libtgvoip-1.0.3-1.fc27.src.rpm
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-1.0.3-1.fc27.x86_64.html
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-devel-1.0.3-1.fc27.x86_64.html
Также нужны mock и gyp с поддержкой cmake
mock -r epel-7-x86_64 rebuild libtgvoip-1.0.3-1.fc27.src.rpm
(тут будет момент с gyp - нужно будет также встроить свежий gyp, так что вместо epel будет своя репа c gyp, куда в том числе нужно добавить данные репы centos-sclo-rh для devtoolset)
Но всё-равно не соберётся. Вторым шагом будет или выпиливание webrtc блока (оно на c++17), или установка gcc 5. Версия 4.9 его не устроит. Ставим devtoolset-4-gcc
Но всё-равно не соберётся, потому что mock тянет штатную версию 4.8.
А также, будет ошибка
usr/include/c++/5.3.1/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Только тут момент: ошибка изменится на
error: ‘typeof’ was not declared in this scope
фикс: typeof отсутствует(?) в с++11, надо писать -std=gnu++11
или (возможно?) поможет такая штука
#define typeof(x) __typeof__(x)
Теперь в спеке нужны изменения
pushd out/Release
+ sed -i'' -e "14i add_definitions(-std=gnu++11)" CMakeLists.txt
%cmake .
вторник, 6 февраля 2018 г.
/usr/sbin/useradd: No such file or directory
Довелось тут поймать Exception в анаконде, не сразу нашлась причина (в /tmp/packaging.log или /tmp/rpm-script.log), когда ставилось всё автоматом через ks.cfg: надо было предварительно добавить установку shadow-utils
Requires(pre): shadow-utils
Requires(pre): shadow-utils
пятница, 2 февраля 2018 г.
ERROR 1005 (HY000): Can't create table `db`.`cdr2` (errno: -1 "Internal error < 0 (Not system error)")
Поймали недавно такую ошибку
ERROR 1005 (HY000): Can't create table `db`.`cdr2` (errno: -1 "Internal error < 0 (Not system error)")
ERROR 1005 (HY000): Can't create table `db`.`cdr2` (errno: -1 "Internal error < 0 (Not system error)")
Оказалось, это прилетело что-то не нужное, с таким описанием
ENGINE=InnoDB DEFAULT CHARSET=ascii DATA DIRECTORY='/var/lib/mysql_parition_moving/';
этого DIRECTORY не существует.
Server version: 10.1.26-MariaDB MariaDB Server
понедельник, 29 января 2018 г.
CentOS и cmake: this file requires compiler and library support for the iso c++ 2011 standard
Даже после установки devtoolset-7 софт может не собираться, выдавая
this file requires compiler and library support for the iso c++ 2011 standard
Была найдена такая штука:
# http://stackoverflow.com/questions/10851247/how-to-activate-c-11-in-cmake
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
add_definitions(-std=c++11)
elseif(COMPILER_SUPPORTS_CXX0X)
add_definitions(-std=c++0x)
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
Вставляем в CMakeLists.txt поближе к началу, собираем.
Хотя мелькал и такой вариант
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ручной вариант
$ cmake -DCMAKE_CXX_FLAGS=-std=c++11 ..
this file requires compiler and library support for the iso c++ 2011 standard
Была найдена такая штука:
# http://stackoverflow.com/questions/10851247/how-to-activate-c-11-in-cmake
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
add_definitions(-std=c++11)
elseif(COMPILER_SUPPORTS_CXX0X)
add_definitions(-std=c++0x)
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
Вставляем в CMakeLists.txt поближе к началу, собираем.
Хотя мелькал и такой вариант
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ручной вариант
$ cmake -DCMAKE_CXX_FLAGS=-std=c++11 ..
CentOS 7 и gcc разных версий
Штатный gcc - 4.8, что уже весьма старо, а тот же гугл обожает говнокодить на свежем с++17. Впрочем, можно поставить и более свежие версии. под центос 6, тут действуем по аналогии.
yum -y install centos-release-scl
yum search devtoolset
Будет огромный список, который делится на части по версиям. В частности, devtoolset-3 это gcc 4.9, -4 это 5.3 итд.
На самом деле, ставить целиком devtoolset-x не нужно, обычно достаточно только
devtoolset-3-gcc
devtoolset-3-gcc-с++
Дальше переключаем версию, несколько вариантов
1) scl enable devtoolset-3 bash
2) /opt/rh/devtoolset-3/enable
3) update-alternatives --install /usr/bin/gcc-4.9 gcc-4.9 /opt/rh/devtoolset-3/root/usr/bin/gcc 10
3) update-alternatives --install /usr/bin/gcc-4.9 gcc-4.9 /opt/rh/devtoolset-3/root/usr/bin/gcc 10
update-alternatives --install /usr/bin/g++-4.9 g++-4.9 /opt/rh/devtoolset-3/root/usr/bin/g++ 10
(тут уже сначала надо смотреть, что куда ставится, зато потом переключать можно глобально)
А посмотреть, какая версия в каком тулсете, можно так:
$ yum info devtoolset-4-gcc |grep Version
Version : 5.3.1
$ yum info devtoolset-4-gcc |grep Version
Version : 5.3.1
пятница, 26 января 2018 г.
cmake и многопоточность
Косяк cmake в том, что он собирает в 1 поток.
https://blog.kitware.com/cmake-building-with-all-your-cores/
Для решения - генерируем через -G файлы под ninja или make и собираем уже ими.
https://blog.kitware.com/cmake-building-with-all-your-cores/
Для решения - генерируем через -G файлы под ninja или make и собираем уже ими.
вторник, 23 января 2018 г.
CentOS 7 и gyp: ImportError: No module named cmake
GYP (generate your projects) is a build automation tool. GYP is created by Google to generate native IDE project files (such as Visual Studio Code and Xcode) for building the Chromium web browser and is licensed as open source software using the BSD software license.
The functionality of GYP is similar to the CMake build tool. GYP processes a file that contains a JSON dictionary[1] in order to generate one or more target project make files. The single source .GYP file is generic while the target files are specific to each targeted build tool.
Потребовалось для некоторых задач использовать gyp (wiki, 2) с опцией --format=cmake, но молвит нам компилятор ImportError: No module named cmake
Также не помогла установка python-pip && pip install cmake. Копать надо в сторону самого gyp:
$ ls -la /usr/lib/python2.7/site-packages/gyp/generator/cmake*
ls: cannot access /usr/lib/python2.7/site-packages/gyp/generator/cmake*: No such file or directory
То есть просто нет данного функционала в самом gyp. Но заглянув например сюда - мы этот модуль видим.
The functionality of GYP is similar to the CMake build tool. GYP processes a file that contains a JSON dictionary[1] in order to generate one or more target project make files. The single source .GYP file is generic while the target files are specific to each targeted build tool.
Потребовалось для некоторых задач использовать gyp (wiki, 2) с опцией --format=cmake, но молвит нам компилятор ImportError: No module named cmake
Также не помогла установка python-pip && pip install cmake. Копать надо в сторону самого gyp:
$ ls -la /usr/lib/python2.7/site-packages/gyp/generator/cmake*
ls: cannot access /usr/lib/python2.7/site-packages/gyp/generator/cmake*: No such file or directory
То есть просто нет данного функционала в самом gyp. Но заглянув например сюда - мы этот модуль видим.
Быстрое введение в mock
mock это утилита для сборки, наподобие rpmbuild, но в чистом окружении.
https://github.com/xvitaly/tgbuild/blob/master/doc/build_using_mock.md
https://blog.packagecloud.io/eng/2015/05/11/building-rpm-packages-with-mock/
https://github.com/xvitaly/tgbuild/blob/master/doc/build_using_mock.md
https://blog.packagecloud.io/eng/2015/05/11/building-rpm-packages-with-mock/
Список реп (для ключа -r) можно посмотреть тут
/etc/mock/
В случае с centos ставим примерно так
Подготовка
yum install -y epel-release
yum install rpm-build rpmdevtools mock
usermod -a -G mock some_builder_user
mock -r epel-7-x86_64 init
Сборка своего пакета
rpmbuild -bs some_package.spec
mock -r epel-7-x86_64 some_package.src.rpm
и результат будет в /var/lib/mock/epel-7-x86_64/result
Чтобы сделать сборку со своей репой, в /etc/mock копируем нужный файл и добавляем внутрь свои репы, а потом в -r указываем наше новое название.
среда, 17 января 2018 г.
debian: ispmanager 4 + letsencrypt
Есть штатный модуль интеграции, но он доступен только с версии 5.65, а нам надо под более адекватную 4 версию.
Можно конечно поставить сервис, сгенерировать сертификаты, скопировать их из файлов и добавить через панель, а потом каждые 2 месяца обновлять... Но можно сделать проще!
Можно конечно поставить сервис, сгенерировать сертификаты, скопировать их из файлов и добавить через панель, а потом каждые 2 месяца обновлять... Но можно сделать проще!
понедельник, 1 января 2018 г.
Подписаться на:
Сообщения (Atom)