./debian/alternatives.txt
download original
update-alternatives:
interactive:
update-alternatives --config name
modes
------
--install $alink,$name,$apath,$apriority,@ARGV
--remove $name,$apath,@ARGV
--display $name
options
-------
--slave$ $slink,$sname,$spath,@ARGV
$aslavelinkcount{$slink}++ && &badusage("slave link $slink duplicated");
$aslavelink{$sname}= $slink;
$aslavepath{$sname}= $spath;
--altdir $altdir
--admindir $admindir
Format of /var/lib/dpkg/alternatives/$name:
-------
"auto"|"manual"
link
(sname
slink)*
(version
priority
spath* (so viele wie oben snames)
)*
link => $link
(sname,slink)s => @slavenames, @slavelinks
(version,priority,spath*) => $versions[lfd.Nr.],
$priorities[lfd.Nr.],
$slavepath{lfd.Nr., spathnr}
lfd.Nr. für version v steht in $versionnum{v}
--install $alink,$name,$apath,$apriority,@ARGV {
rename_mv($link,$alink); # d.h. alink mit link identifiziert
$link= $alink;
lfd.Nr. := $versionnum{$apath}; # d.h. apath mit version identifiziert
}
===========================
[root@tick /]# cat /var/lib/dpkg/alternatives/www-browser
manual
/usr/bin/www-browser
www-browser.1.gz
/usr/share/man/man1/www-browser.1.gz
/usr/bin/w3m
25
/usr/share/man/man1/w3m.1.gz
/usr/bin/links.main
40
/usr/share/man/man1/links.main.1.gz
/usr/bin/lynx
50
/usr/share/man/man1/lynx.1.gz
[root@tick /]#
==> in update-alternatives:
$manual="manual"
$link="/usr/bin/www-browser"
@slavenames = ("www-browser.1.gz")
$slavenum{"www-browser.1.gz"} = 1
$slavelinkcount{"/usr/share/man/man1/www-browser.1.gz"} = 1
@slavelinks = ("/usr/share/man/man1/www-browser.1.gz")
@versions = ("/usr/bin/w3m","/usr/bin/links.main", "/usr/bin/lynx")
$versionnum{"/usr/bin/w3m"} = 1
$priorities[1] = 25
$slavepath{1,0} = "/usr/share/man/man1/w3m.1.gz"
^ ^
| |
$versionnum index in @slavenames
$versionnum{"/usr/bin/links.main"} = 2
$priorities[2] = 40
$slavepath{2,0} = "/usr/share/man/man1/links.main.1.gz"
$versionnum{"/usr/bin/lynx"} = 3
$priorities[3] = 50
$slavepath{3,0} = "/usr/share/man/man1/lynx.1.gz"
back to debian
(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>