[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