TARGET, HOST и BUILD в autoconf

Разбираюсь с кросскомпиляцией пакета, нашел интересное и понятное объяснение отличий опиций target, build и host в autoconf.
--build: это машина на которой вы компиляете.
--host: машина для которой компилируете.
--target: машина для которой GCC сгеренинует бинарник.

Как указано в GCC documentation (Host/Target specific installation notes):

Если build, host и target одинаковые, это называется “нативная компиляция”(native).

Если build, host одинаковые, а target отличается, это называется: кросс-компиляция(cross).

Если build, host, target все разные, это называется канадская компиляция (canadian), назвали так в честь политической партии канады, у которых видимо обещания с делами сильно расходятся ))

Если target и host одинаковые, а build отличается, то вы используете кросс-компиляцию для сборки нативного бинарника для другой системы. (иногда это называют host-x-host, crossed native, или cross-built native.)

Если build и target одинаковые, а host отличается, то вы используете кросс-компилятор, чтобы скомпилять кросс-компилятор, для машины на которой в данный момент компиляете. (Иногда и такое бывает.)

 

PS. Убил кучу времени пытаясь скомпилить i386 код на amd64 системе. После каждой компиляции проверял полученный бинарник с помощью file. В результате получил заветные:

root@host:/home/serp/sbin# file zabbix_agentd
zabbix_agentd: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=0x80351655fa042fd59e60f87c61433eaf9f713e4d, not stripped

Помогло конфигурирование с помощью:

CFLAGS=”-m32″ ./configure –enable-agent –with-mysql –with-net-snmp –enable-static  –prefix=/home/serp/zabbix_compiled –host=i386

Настройка ntpd

Введение.

На днях разбирался с настройкой ntpd, как оказалось возможности этого демона немного выходят за рамки “раздачи времени по сети”.

Сперва у меня было желание полностью разобраться во всех возможных хитросплетениях конфигурации, но после вдумчивого чтения официальной документации на www.ntp.org , я пришел к выводу, что мне нихрена там не понятно. Создатель этого демона человек несомненно очень умный, но понять им написанное крайне не просто.

Итак. Как выяснилось, демон может работать в трех режимах:

1. Клиент\Серверный
2. Симметрично активный\пассивный
3. Широковещательный Читать

Как сделать “backport” пакета

1. Введение.

Поскольку я обновляю дистрибутив на домашнем компе редко, в основном по LTS релизам, то зачастую, версии софта в репозитории моего дистра достаточно устаревшие.

Понятное дело, что ставить пакет например из Ubuntu 14.04 в 12.04 бесполезная трата времени, во первых, т.к. будет куча неудовлетворенных зависимостей, во вторых, даже если забить на формальности, то бинарники из нового дистрибутива, как правило собраны под более новые библиотеки (libc, glib и т.д.), и скорее всего не будут работать.

Вариант переустановить систему на более новую я не рассматриваю. Поэтому основных решений обычно два:

1. Поискать готовый пакет под свою систему в ppa (https://launchpad.net/ubuntu/+ppas)

2. Портировать пакет из свежего дистра в свой.

Ставить пакеты из ppa, не очень безопасно, хорошо, если данный ppa принадлежит разработчику программы, и он там распростаняет свои сборки. Но чаще всего, архив принадлежит совершенно посторонним людям, и никаких гарантий, что в программу не засунули бэкдор нет.

Благо бэкпортить не сложно. Один из способов это селать, я покажу на примере программы snort. Что для этого нужно:

1. Установить ubuntu-dev-tools
2. Сгенерировать  пару gpg ключей.
3. Установить все необходимые для компиляции snort пакеты.
4. С помощью backportpackage получить необходимые для компиляции файлы.
5. Скомпилировать прогрумму. Читать

Lifehack.

Недавно кончилось на харде место, и но т.к. нужно было срочно скачать несколько тяжелых файлов, поставил качаться на USB HDD.

Некоторые время спустя, “почему-то” стало кончаться место в корневой фаловой системе. Причем кончаться в никуда! Анализатор использования дисков так и не смог мне вразумительно объяснить куда делось дисковое пространство.

Потратив час своего времени, выяснилось вот что:

1. Программа для закачки тех самых файлов исправно качала… качала файло даже тогда, когда хард был отключен.

2. Т.к. при анализе занимаемого места на директорию /media я внимания не обращал, потому и не понял куда место кончилось.

Вывод сделал для себя такой: единственный способ застраховать себя от такой херни навсегда – сделать отдельный раздел размером 1Мб и монтировать туда директорию /media. Т.о. Даже если еще приключится такая беда, и начнет что-нибудь качаться в то время, как хард отключен, то ничего страшного не случится, т.к. места там всего 1Мб. В то же время, USB диски монтируются каждый в свою директорию, и их работе это не помешает.

SUSE создает GPL аналог kSplice

Представленная компанией SUSE система kGraft позволяет выполнить обновление ядра без перезагрузки. В настоящее время аналогичная система Ksplice предлагается только компанией Oracle, но она является проприетарной разработкой. Возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра, но этого вполне достаточно для устранения уязвимостей в ядре и исправления ошибок. Обновление ядра Linux без перезагрузки является востребованной возможностью для серверных и промышленных дистрибутивов, критичных ко времени простоя. В настоящее время свободная и общедоступная реализация такой возможности не предоставляется ядром Linux. Читать

Кэширование с использованием SSD на уровне ядра

Оказывается есть в linux 3 технологии для кэширования чтения\записи обращений на обычный диск с использованием SSD.

bcache,

flashcache,

dm-cache.

Чем отличаются, пока не разбирался.

Вот достаточно подробная инструкция по настройке dm-cache http://blog.kylemanna.com/linux/2013/06/30/ssd-caching-using-dmcache-tutorial/

Перенос Windows 2008 server на Citrix XenServer

Вводная.

Есть у меня сервер, на котором висит MsSQL, Tomcat и еще несколько сервисов. Железка простенькая, но надежная. HP dl160 g6. Работает под вынь 2008. Запустили его давно, примерно 4 года назад. За это время пришлось завести еще один серв, на котором висит VPN сервер и пара сайтов. В роли второго сервера выступил обычный дестоп под linux.

PVN сервер собирали второпях, рейда там нет, и железо довольно слабое. Оба сервера стоят на колокейшине у провайдера, что стоит денег.

Появилась идея виртуализировать оба сервера, и установив на HP Citrix XenServer, крутить все это на нем.

С XenServer я работаю уже года 3, но переносить живую винду с реального сервера в виртуалку еще ни разу не приходилось. Читать

Load average

Наблюдая выводы таких команд, как top, htop, uptime, w и, возможно, других, пользователь наверняка обращал внимание на строку load average:

top

Расширяя обсуждение в «Общем обзоре стандартных средств наблюдений за системой», попробуем разобрать смысл этих чисел. Итак, проще говоря, числа отражают число блокирующих процессов в очереди на исполнение в определенный временной интервал, а именно 1 минута, 5 минут и 15 минут, соответственно. Понятие блокирующих процессов обычно хорошо освещают в последнее время, когда рассказывают о nginx. 🙂 В данном случае, блокирующий процесс — это процесс, который ожидает ресурсов для продолжения работы. Как правило, происходит ожидание таких ресурсов, как центральный процессор, дисковая подсистема ввода/вывода или сетевая подсистема ввода/вывода.
Читать

Падение скорости записи USB на Ubuntu 12.04

Пару дней не мог понять, какого хрена скорость записи на USB HDD падает до 2 Мб\с. Причем проблема не постоянная. После перезагрузки работает вроде нормально. Проблемы начинаются через некоторое время.

Перебрал самые очевидные варианты, после, изучив логи, нашел там: “assuming drive cache: write through”.

Начал разбираться, пришел к мысли, что нужно попробовать сменить ведро.

Оказалось, что не зря я подозревал в нехорошем, ядро из Hardware Enablement Stack.

Откатился к ядру 3.2 из 12.04. Проблема исправилась.

По поводу того, как удалять эту гадость, не я один вопросом задавался: http://askubuntu.com/questions/265999/how-to-remove-kernel-lts-enablement-stack

UPD: Убил кучу времени на разгребание зависимостей, поэтому хочу сразу предупредить, если соберетесь удалять эту напасть, примите во внимание, что возможно XORG не запустится, и придется все редать в консоли. Запаситесь мануалами.