[sisyphus] Re: web packaging policy: грабли и варианты revisited (was: WackoWiki)
Igor Zubkov
=?iso-8859-1?q?icesik_=CE=C1_mail=2Eru?=
Ср Фев 23 04:10:43 MSK 2005
В сообщении от Вторник, 22-Фев-2005 14:15 Michael Shigorin написал(a):
> > > > > > > Видимо потому, что нет web packaging policy... *sigh*
> > > >
> > > > Любопытство заело - а что это за такая веб-полиция? ;-)
> > >
> > > В общем, если желающие пилить веб-софт тут на практике есть --
> >
> > Желающие есть, policy нет ;-)
>
> Policy нет потому, что при последней попытке составления стало
> ясно, что нести ответственность за принуждение майнтейнеров к
> выравниванию софта я нести не могу.
>
> Если есть желающие -- необходимые действия вкратце обрисованы,
> тест -- это когда софтина, положенная в какой /usr/share и
> "размноженная" на два виртуальных хоста с разной конфигурацией,
> сможет:
>
> - завестись со всей этой фигнёй;
> - пережить обновление содержимого в /usr/share до новой версии.
Помоему, вполне готовый draft полиси.
От себя добавлю что не плохо было бы резать конфиг софтулины на части для
облегчения обновления.
Пример: у меня стоит drupal. У него все настойки в одном файле (drupal 4.5.2):
conf.php:
<?php
# $db_url = "mysql://user:password@hostname/database";
# $db_url = "pgsql://user:password@hostname/database";
$db_url = "mysql://root:qwerty@localhost/drupal";
# If $db_prefix is specified all database table names will be
# prepended with this string. Be sure to use valid database
# characters only, usually alphanumeric and underscore. If no
# prefixes are desired, set to empty string "".
$db_prefix = "";
#
# Base URL:
#
# The URL of your website's main page. It is not allowed to have
# a trailing slash; Drupal will add it for you.
#
$base_url = "http://localhost";
?>
Эти все настройки разложить по отдельным файлам. Примерно так:
conf.php:
<?php
include_once(drupal_db_url.php);
include_once(drupal_db_prefix.php);
include_once(drupal_base_url.php);
?>
drupal_db_url.php:
<?php
$db_url = "mysql://root:qwerty@localhost/drupal";
?>
drupal_db_prefix.php:
<?php
$db_prefix = "";
?>
drupal_base_url.php:
<?php
$base_url = "http://localhost";
?>
Пометить эти все файлы как %config(noreplace) и при обновлении обновится
только то что надо (и что админ не трогал, а в идеале админ может/желательно
трогать всё кроме conf.php). Плюс обновится /usr/share/софтулина. Ну, а также
не плохо было бы сконвертить старые базы в новые (если требуется). drupal я
думаю такую процедуру переживёт вполне нормально.
Подробная информация о списке рассылки Sisyphus