Перейти к собственно контенту

Архив

Метка: make

Добавляем мультимедиа репозиторий и обновляем список пакетов:
echo "deb http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
echo "deb-src http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
apt-get update
apt-get install deb-multimedia-keyring # если вылезла ошибка то повторить
apt-get update

Переходим в каталог с исходниками:
cd /usr/local/src

Устанавливаем все необходимые зависимости
aptitude install -y libfaad-dev faad faac libfaac0 libfaac-dev libmp3lame-dev x264 libx264-dev libxvidcore-dev build-essential checkinstall

Устанавливаем все необходимые зависимости для сборки ffmpeg
apt-get build-dep ffmpeg

Скачиваем актуальный исходный код
apt-get source ffmpeg

Переходим в каталог с исходниками
cd ffmpeg-*

Задаем опции сборки:
./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb

Делаем маленький фикс ))):
mkdir -p /usr/local/share/ffmpeg

Собираем .deb пакет:
checkinstall -D --install=no --pkgname=ffmpeg-full --autodoinst=yes -y

Если получили ошибку:
libavcodec/libx264.c:492: undefined reference to `x264_encoder_open_125'

то переходим на каталог выше, удаляем x264 и собираем из исходного кода и пытаемся повторить сборку ffmpeg:
cd ..
apt-get remove x264
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-static --enable-shared
make && make install
ldconfig
cd .. && cd ffmpeg*
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/x264/libx264.a ./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab (далее…)

В дополнение к этой статье я напишу как установить Redmine и при необходимости перенести данные на сервер с ОС CentOS 6.5 и панелью ISPmanager Lite.

У нас имеется один сервер с рабочим Redmine и второй с ISPmanager Lite на котороый и будет делать перенос.

1) Ставим пакеты для сборки сорцов:

# yum install gcc-c++ patch readline readline-devel zlib zlib-devel
# yum install libyaml-devel libffi-devel openssl-devel make
# yum install bzip2 autoconf automake libtool bison iconv-devel mysql-devel

2) Устанавливаем RVM ( Ruby Version Manager ):

# curl -L get.rvm.io | bash -s stable

3) Выставляем переменные окружения:

# source /etc/profile.d/rvm.sh

4) Ставим Ruby 1.9.3 и назначаем дефолтным в системе, проверяем работоспособность:

# rvm install 1.9.3
# rvm use 1.9.3 --default

Провеверям:

# ruby --version
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

5) Ставим Passenger и добавляем поддержку в Nginx:

# gem install passenger

Качаем исходный код nginx:

# cd /tmp
# wget http://nginx.org/download/nginx-1.7.9.tar.gz && tar xvzf nginx-1.7.9.tar.gz

Смотри с какими параметрами был уже бинарик у нас собран:

# nginx -V
nginx version: nginx/1.7.9
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-debug --with-http_secure_link_module --with-http_random_index_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module (далее…)

Решил обновить систему с 8.1 STABLE до 8.2 RC1

Шаг1: Получение исходных кодов.

Я использовал утилиту csup:

1) Скопируем пример конфигурационного файла для cvsup в удобную директорию, например /root/share/csup

deathstar# mkdir -p /root/share/csup/
deathstar# cp /usr/share/examples/cvsup/stable-supfile /root/share/csup/

b) Откроем /root/share/csup/stable-supfile на редактирование, где как минимум, необходимо задать на какую ревизию обновлять и откуда.

default release=cvs tag=RELENG_8_2

где tag= указывает, какую ветку следует синхронизировать.

Если Вы хотите иметь N-stable, ставьте RELENG_N

Если Вы хотите N.M-RELEASE, ставьте RELENG_N_M

Если Вы хотите обновится на HEAD (CURRENT), девелоп-версию FreeBSD, ставьте tag=.
default host=CHANGE_THIS.FreeBSD.org

CHANGE_THIS.FreeBSD.org — изменить на зеркало CVSup. Их список можно просмотреть, например здесь http://www.freebsd.org/doc/handbook/mirrors.html

Hint: можно использовать утилиту sysutils/fastest_cvsup для поиска наиболее быстрого/ближайшего для Вас зеркала

Строчки

default host=cvsup4.ru.FreeBSD.org
default release=cvs tag=RELENG_8_2

Заставят дерево исходных кодов обновиться до 8.2-RC1 (на момент написания статьи) с зеркала cvsup4.ru.freebsd.org

c) Создадим скрипт для запуска csup, например /root/bin/csup-bsd.sh

Содержимое файла:

#!/bin/sh
CSUP=`which csup`
CONFFILE="/root/share/csup/stable-supfile"

if [ ! -z ${CSUP} ]; then
${CSUP} -g -z ${CONFFILE}
else
echo "csup not found"
fi

d) Сделать скрипт выполняемым и запустить:

deathstar# chmod +x /root/bin/csup-bsd.sh
deathstar# sh /root/bin/csup-bsd.sh

Шаг1: Компилируем новую систему.
После обновления идем в папку /usr/src. Все изменения версий описаны в файле UPDATING.
Дальше буду писать какие надо выполнять команды:
1)
deathstar# cd /usr/obj
deathstar# rm -rf *
deathstar# cd /usr/src

Собираем мир:
2)
deathstar# make buildworld

Собираем (далее…)