Устранение неполадок «update-alternatives: ошибка: ошибка создания символической ссылки ‘/etc/alternatives/php.dpkg-tmp’: разрешение отклонено

При обнаружении ошибки «update-alternatives: error: error Создание символической ссылки ‘/etc/alternatives/php.dpkg-tmp’: Permission Denied» в Linux, особенно в Ubuntu, это указывает на проблему с разрешением при попытке создать символическая ссылка. Эта ошибка может возникнуть во время установки пакета или обновления системы, и ее устранение может оказаться неприятным. В этой статье мы рассмотрим несколько способов устранения и исправления этой ошибки, а также примеры кода.

Метод 1. Запустите команду с помощью sudo
Наиболее распространенной причиной этой ошибки является недостаточность привилегий. Запустив команду с помощью sudo (суперпользователь do), вы повысите свои привилегии и получите необходимые разрешения для создания символической ссылки. Используйте следующий пример кода:

sudo update-alternatives --config php

Метод 2: проверьте владельца и разрешения.
Убедитесь, что целевой каталог (/etc/alternatives/) имеет правильное право собственности и разрешения. Пользователь, выполняющий команду, должен иметь права на запись в каталог. Вы можете использовать следующий пример кода для проверки и изменения прав собственности и разрешений:

ls -ld /etc/alternatives/
sudo chown -R <your_user>:<your_group> /etc/alternatives/
sudo chmod 755 /etc/alternatives/

Метод 3: временно отключите SELinux или AppArmor
Если в вашей системе включен SELinux или AppArmor, они могут препятствовать созданию символической ссылки. Временное отключение этих модулей безопасности может помочь определить, являются ли они причиной проблемы. Используйте следующий пример кода:

# Temporarily disable SELinux
sudo setenforce 0
# Temporarily disable AppArmor
sudo systemctl stop apparmor

Метод 4. Очистите конфликтующие символические ссылки.
В целевом каталоге могут быть конфликтующие или неработающие символические ссылки. Их очистка может устранить ошибку, связанную с отказом в разрешении. Вот пример кода для удаления конфликтующих символических ссылок:

sudo unlink /etc/alternatives/php.dpkg-tmp

Метод 5: используйте команду update-alternatives с флагом –install
Если ни один из вышеперечисленных методов не работает, вы можете попробовать использовать флаг –install с командой update-alternatives. Этот подход явно устанавливает символическую ссылку, минуя любые ограничения разрешений. Вот пример кода:

sudo update-alternatives --install /etc/alternatives/php php /usr/bin/php7.4 50

Обнаружение ошибки «update-alternatives: error: error Создание символической ссылки ‘/etc/alternatives/php.dpkg-tmp’: Permission Denied» может разочаровать, но с помощью методов, упомянутых выше, вы можете устранить неполадки и устранить ее. проблема. Не забудьте обеспечить правильные разрешения, при необходимости временно отключить модули безопасности и очистить конфликтующие символические ссылки. Выполнив эти шаги, вы сможете преодолеть ошибку отказа в разрешении во время создания символической ссылки.