Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Как обновить apache из портов, во freebsd
 
Желательно без cvsup.
В гугл не слать - был - ничего дельного не нашел. обновить все порты на хрен на надо, только апачь.
заранее спасибо  :o
 
Если я правильно понял, что ты хочешь обновить не Apache из портов, а сам порт Apache?
Читай:
man 8 portsnap
 
:) Simon Phoenix прав, но насколько я понял,  чел хочет сначала обновить portstree, И ТОЛЬКО для апача и его зависимостей.

Если так, то ему поможет утилитка portcheckout.
Хотя задачка слегка нетривиальная,  всёже попробую помочь.

Все нижеприведённые комманды следует выполнять от имени пользователя root из шелла sh или bash.

1) Ставим portcheckout:
cd /usr/ports/devel/portcheckout
make; make install

2) Сохраняем старые INDEX'ы для ports:
cd /usr/ports
mkdir oldindex
mv INDEX* oldindex/

3) Скачиваем новый INDEX файл
make fetchindex
(в результате должен появиться /usr/ports/INDEX-6)

4) Выбираем какой именно апач нам нужен для обновления.

cut -d '|' -f 1 INDEX-6 | grep ^apache-[0-9]

при этом получаем список апачей.
к примеру нечто похожее на это:

apache-1.3.36
apache-2.0.58_1
apache-2.1.9_5
apache-2.2.2

Допустим нам нужно обновить portstree только для  apache-1.3*.

4) Настраиваем необходимые переменные для cvs
CVSROOT=freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs; export CVSROOT

5) Запускаем portcheckout. Я не советую cмешивать новую и старую ветки port'ов. Лучше создать новый portstree.
В этом новом portstree будут находиться только базовые Makefile'ы, а также порты, необходимые для апача + сам апач. Новый portstree положим, к примеру, в /tmp/newports:

mkdir /tmp/newports/
cd /tmp/newports
portcheckout --index=/usr/ports/INDEX-6 --fetchonly apache-1.3.36 | sh

Теперь в /tmp/newports/ports  находится новое дерево портов, содержашее только то, что нужно для сборки apache-1.3.36.

6) Восстанавливаем старые INDEX'ы, чтобы старый portstree был всёещё работоспособен.

cd /usr/ports
mv oldindex/INDEX* .
rmdir oldindex

7) А теперь инсталлируем новый apache из нового portstree:

PORTSDIR="/tmp/newports/ports"; export PORTSDIR
cd /tmp/newports/ports/www/apache13
make; make install

P.S. Перед последним шагом, возможно, придётся снести старую версию апача, чтобы make install не ругался.
(снести проще всего через pkg_delete).

P.P.S. ВСЁ ВЫШЕПРИВЕДЁННОЕ РАБОТАЕТ, НО ПРИ ЭТОМ ЯВЛЯЕТСЯ КОСТЫЛЁМ 8)


Удачи.
 
Большое спасибо за ответы, особенно ClosedGL, сразу видно что профи

В общем не получилось чет у меня все как вы сказали, решил сделать по ману все и сразу:
http://citforum.ru/open_source/pack_manage/portupgrade/

сделал так  portsdb -Uu - вроде долго обновлялось, чета качалось и таки обновилась база.
потом однако на portversion -v система ничего не сказала, ответила что все порты up2date :evil:
что за фигня? у меня апач 1333 а уже 1336 давно в портах

затею обновить только апачь мона оставить, обновляем все порты (благо установлено только 12 пекеджей не считая апачи). Что я не так делаю и как тут быть?

ессесно portupgrade -arR ниче не дает, думает секунд 10 и завершается.

Заранее спасибо за ответы.  :(
 
portsdb является частью portsupgrade, который используется для обновления установленных портов к версии, которая находится в дереве портов.
А сам portsdb - это прога, которая обновляет базу данных дерева портов, используемую portsupgrade.
portsdb нужно запускать после обновления дерева портов с помощью cvsup для синхронизации этой базы с деревом портов.
Не знаю почему у тебя не получилось, то что предложил ClosedGL, как по мне хорошее решение для твоего случая, если уже тебе не хочется возиться со всем деревом портов.
 
не знаю...
я сторонним ручной сборки.
./configure --help

потом составляем шелл файл для сборки, пересобираем зависимости (наприменр ПХП) и все работает.
 
вот что именно не получилось:
>>Теперь в /tmp/newports/ports находится новое дерево портов, содержашее только то, что нужно для сборки apache-1.3.36.

У меня там вобще ничего не появилось, хотя до этого все шло как надо. :cry:
 
Уважаемые?! пытался поставить из портов апач 2.0 и 2.2 непошли , нехватает чего-то.(м4 или что-то типа того).. а 1.3 встало без вопросов , кто нить сталкивался??
-----FreeBSD *BSD 8.0-RC1 FreeBSD 8.0-RC1 #0: Thu Sep 17 20:45:19 UTC 2009----------- :cry:
Изменено: серёга я - 29.03.2010 23:36:18
 
ошибку в студию
P.S pkg_add -r apache20 или 22 пробовли?
P.S.S телепатов тут нет
 
autom4te  failed with exit status : 1 ./buildconf faile for apr-util
error: m4_popdef : undefined macro : m4_expansion_stack...
и все в таком духе..
 
что то сразу не обратил внимание.А зачем вам RC-1?Когда уже есть 8.0 Release.Это же 1-й кандидат в релизы и он сырой.
Попробуйте pkg_add -r apache22
Изменено: Евгений Палитов - 30.03.2010 12:09:33
 
Евгений? как апгрейд сделать , sysinstall неполучилось....
хотелось бы : не RC-1...
 
Наверное стоит начать изучение FreeBSD с handbook'а и половина вопросов исчезнут не оставив и следа
 
И наверное - теме самое место в "Новичках".  ;)
 
Странные вы люди какието, а поидее все делается эллементарно
удаляем все лишнее или все из /usr/ports/
а также из /var/db/portsnap/
потом даем команду  portsnap fetch extract (скачается из инета 62 метра)
далее даем команду  pkg_version -v где уже по листингу будет видно что нам можно обновить
выглядит примерно так  php5-gmp-5.3.2 <   needs updating (port has 5.3.2_1)
Если у вас установленн portupgrade то уже все отлично и можно приступать к обновлению
тоесть делаем так
portupgrade php5-gmp-5.3.2
все скачается и скомпилится без особых головняков
Если же у вас очень много пакетов надо обновить то самое легкое уже на полном автомате
portupgrade -a
но многие фряшники почемуто предпочитают вот так
portupgrade -af
автоматически обновятся все установленные порты - процесс долгий

Если же вас такой способ по каким либо причинам не устроил то курите portmaster
Страницы: 1
Читают тему