Bug 4276 - bad %postin
Summary: bad %postin
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: rp-pppoe-client (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 7079
  Show dependency tree
 
Reported: 2004-06-02 01:00 MSD by Denis Ovsienko
Modified: 2007-12-08 17:03 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Ovsienko 2004-06-02 01:00:23 MSD
#/sbin/chkconfig --add adsl                                                    
                                                           
if [ -f /etc/ppp/resolv.conf ]; then                                           
                                                           
    rm -f /etc/ppp/resolv.conf && ln -s /etc/resolv.conf /etc/ppp/resolv.conf  
                                                           
else                                                                           
                                                           
    ln -s /etc/resolv.conf /etc/ppp/resolv.conf                                
                                                           
fi

1. %post_service
2. /etc/ppp/resolv.conf -> /etc/resolv.conf это неправильно. Цитирую из man
pppd/usepeerdns:
In addition, pppd
              will  create  an /etc/ppp/resolv.conf file containing one or two
              nameserver lines with the address(es) supplied by the peer.
Это приводит к тому, что имеем файл, не принадлежащий какому-либо пакету,
наличие которого ломает логику работы ip-up/ifup-post и постоянно портит
/etc/resolv.conf.
Comment 1 Aleksandr Blokhin 2004-06-02 13:22:40 MSD
1) При чём тут %post_service? Напротив строки запуска сервиса стоит комментарий.
2) Что значиет "портит"? А куда же тогда прописывать динамически получаемый DNS
провайдера? Если я не ошибаюсь, то pppd уже давно не пишет в
/etc/ppp/resolv.conf, по крайней мере у нас я такого не замечал. Мне наоборот
пришлось вводить эту систему ссылок в прошлом году для того, чтобы после
поднятия pppoe записи о правильных DNS попадали в chrooted резолвер. А до этого
три года всё спокойно писалось в /etc/ppp/resolv.conf, а /etc/resolv.conf был
ссылкой на него. Если необходимо "найти хозяина" для /etc/ppp/resolv.conf, то
это не проблема. Я это сделаю.
Comment 2 Denis Ovsienko 2004-06-02 13:38:11 MSD
(In reply to comment #1)
> 1) При чём тут %post_service? Напротив строки запуска сервиса стоит комментарий.
Согласен. Был сонный.

> 2) Что значиет "портит"? А куда же тогда прописывать динамически получаемый DNS
> провайдера? Если я не ошибаюсь, то pppd уже давно не пишет в
> /etc/ppp/resolv.conf, по крайней мере у нас я такого не замечал. Мне наоборот
Пишет-пишет. man не врёт.

> пришлось вводить эту систему ссылок в прошлом году для того, чтобы после
> поднятия pppoe записи о правильных DNS попадали в chrooted резолвер. А до этого
Если в rp-pppoe-client используется pppd и ему передаётся usepeerdns, то после
поднятия интерфейса при запуске /etc/ppp/ip-up нужные значения будут записаны в
/etc/resolv.conf

> три года всё спокойно писалось в /etc/ppp/resolv.conf, а /etc/resolv.conf был
> ссылкой на него. Если необходимо "найти хозяина" для /etc/ppp/resolv.conf, то
> это не проблема. Я это сделаю.
Этот файл создаст и сам pppd, если ему передан usepeerdns.
Comment 3 Aleksandr Blokhin 2004-07-08 12:01:52 MSD

*** This bug has been marked as a duplicate of 4249 ***
Comment 4 Dmitry Vukolov 2004-07-17 07:07:08 MSD
А ведь pppd действительно пишет в /etc/ppp/resolv.conf.
Опишу конкретную ситуацию. Поднят кэширующий DNS pdnsd. Это требует, чтобы в
/etc/resolv.conf находилась _лишь одна_ строчка nameserver 127.0.0.1. Реальные
DNS провайдера pdnsd получает от pppd (/etc/ppp/ip-up) через переменные DNS1 и DNS2.
Поскольку у нас rp-pppoe-client при установке, а также adsl-connect при запуске
делают /etc/ppp/resolv.conf ссылкой на /etc/resolv.conf, содержимое последнего
меняется каждый раз, когда запускается pppd.
На мой взгляд, подобная ссылка создаваться не должна.
Comment 5 Aleksandr Blokhin 2004-08-05 12:11:05 MSD
 .
Comment 6 Denis Ovsienko 2005-07-20 10:07:52 MSD
%postin
#/sbin/chkconfig --add adsl                                                    
                                                            
                                                                               
                                                            
#if [ -f /etc/ppp/resolv.conf ]; then                                          
                                                            
#    rm -f /etc/ppp/resolv.conf && ln -s /etc/resolv.conf /etc/ppp/resolv.conf 
                                                            
#else                                                                          
                                                            
#    ln -s /etc/resolv.conf /etc/ppp/resolv.conf                               
                                                            
#fi                                                                            
                                                            
                                                                               
                                                            
[ -h /etc/ppp/resolv.conf ] && rm -f /etc/ppp/resolv.conf && cat
/etc/resolv.conf > /etc/ppp/resolv.conf ||:

Предлагаю:
1. сервис добавлять
2. сделать не запускаемым по умолчанию
3. /etc/ppp/resolv.conf не трогать, но симлинк удалять
Comment 7 Aleksandr Blokhin 2005-07-29 11:53:58 MSD
Сервис и так добавляется, но не запускается.