'Альтернативы обновления - конфигурируют' просто использование 'ln' для создания жестких ссылок?

Делает update-alternatives --config просто используйте ln создать жесткие ссылки? Например,

$ sudo update-alternatives --config javaws
There are 3 choices for the alternative javaws (providing /usr/bin/javaws).

  Selection    Path                                             Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/javaws   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/javaws   1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/javaws   1060      manual mode
  3            /usr/lib/jvm/jdk1.7.0_67/bin/javaws               1         manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk1.7.0_67/bin/javaws to provide /usr/bin/javaws (javaws) in manual mode.
0
задан 8 October 2014 в 02:00

1 ответ

Не жесткие ссылки, но мягкие / символьные ссылки:

$ stat /etc/alternatives/default.plymouth
File: ‘/etc/alternatives/default.plymouth’ -> ‘/lib/plymouth/themes/ubuntu-logo/ubuntu-logo-scale-2.plymouth’
  Size: 61          Blocks: 8          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 174731      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)

(Это управляет темой, показанной при начальной загрузке.)

update-alternatives использование unlink и symlink системные вызовы:

$ sudo strace update-alternatives --config default.plymouth 
execve("/usr/bin/update-alternatives", ["update-alternatives", "--config", "default.plymouth"], [/* 18 vars */]) = 0
brk(0)                                  = 0x18c3000
...
write(1, "Press enter to keep the current "..., 69Press enter to keep the current choice[*], or type selection number: ) = 69
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 17), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8d4c8a2000
read(0, 1
"1\n", 1024) 
...
unlink("/etc/alternatives/default.plymouth.dpkg-tmp") = -1 ENOENT (No such file or directory)
symlink("/lib/plymouth/themes/ubuntu-logo/ubuntu-logo-scale-2.plymouth", "/etc/alternatives/default.plymouth.dpkg-tmp") = 0
lstat("/lib/plymouth/themes/default.plymouth", {st_mode=S_IFLNK|0777, st_size=34, ...}) = 0
lstat("/lib/plymouth/themes/default.plymouth", {st_mode=S_IFLNK|0777, st_size=34, ...}) = 0
readlink("/lib/plymouth/themes/default.plymouth", "/etc/alternatives/default.plymou"..., 34) = 34
stat("/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.grub", {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
unlink("/etc/alternatives/default.plymouth.grub.dpkg-tmp") = -1 ENOENT (No such file or directory)
symlink("/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.grub", 
...
exit_group(0)                           = ?
+++ exited with 0 +++

альтернативы являются всеми действительно символьными ссылками, IIRC. Вы могли вручную связать их, если Вы желаете. То, что update-alternatives делает, управляют тем, на что могут указать те ссылки, присвоив приоритеты и предложив опции.

На самом деле, первый абзац страницы справочника:

update-alternatives   creates,   removes,   maintains   and    displays
   information about the symbolic links comprising the Debian alternatives
   system.
1
ответ дан 7 October 2019 в 00:15

Другие вопросы по тегам:

Похожие вопросы: