Глава 1. Подсистема альтернатив

Stanislav Ievlev

Содержание

Введение
Определение альтернатив
Реализация альтернатив
Пример spec-файла
Более сложные примеры использования

Введение

Альтернативы позволяют иметь в системе несколько программ со сходной функциональностью, вызываемых по одному и тому же имени. Формально их можно считать определёным расширением файловой системы. Например, в системе может стоять несколько версий компилятора C 2.95, 2.96, 3.2, 3.3 ,пользователь пишет хорошо переносимую программы и ему удобнее в Makefile один раз прописать cc, а потом проверять компиляцию по очереди разными версиями.

Кроме того пользователь или программа могут не заботиться о текущем используемом эмуляторе терминала, а просто вызывать его по имени xvt.

Если есть несколько альтернатив, то надо как-то организовать выбор. Выбор той или иной альтернативы определяется или в ручную администратором системы или автоматически согласно выставленным весам. Веса задаются при упаковке пакета и не подлежат дальнейшему изменению, иначе будет хаос.

Пример 1.1. разные веса

Например kconsole может иметь вес 11, а xterm 12. Cоответственно если в системе установлены обе эти программы одновременно, то предпочтение будет отдано xterm. Программа желающая запустить xvt реально запустит xterm.

В принципе возможно в будущем пользователь тоже сможет определать собственные альтернативы, но это требует тщательного обдумывания ибо связано с потенциальными проблемами безопасности: пользователя смогут “заставить” выполнить совсем не ту программу которую он хотел