Bug 4276 - bad %postin
: bad %postin
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/rp-pppoe-client)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
: 7079
  Show dependency tree
 
Reported: 2004-06-02 01:00 by
Modified: 2007-12-08 17:03 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-06-02 01:00:23
#/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 From 2004-06-02 13:22:40 -------
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 From 2004-06-02 13:38:11 -------
(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 From 2004-07-08 12:01:52 -------

*** This bug has been marked as a duplicate of 4249 ***
------- Comment #4 From 2004-07-17 07:07:08 -------
А ведь 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 From 2004-08-05 12:11:05 -------
 .
------- Comment #6 From 2005-07-20 10:07:52 -------
%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 From 2005-07-29 11:53:58 -------
Сервис и так добавляется, но не запускается.