Это известная проблема, когда вы используете sudo
таким образом, это не будет работать правильно. Это происходит потому, что в то время как echo
команда выполняется как sudo
, в >>
for append пытается открыть целевой файл как не-sudo
пользователь. Вот где проблема с разрешением.
Однако, пожалуйста, прочтите мой многосоставный ответ, который дает вам отдельное решение, которое можно считать более "безопасным", чем другие, которые я предоставляю:
1:
Используйте отдельный файл в /etc/apt/sources.list.d/
который содержит инструкцию deb, о которой вы сейчас говорите. Вам все равно нужно будет использовать sudo
, однако, для редактирования / создания файла.
2:
Решением было бы сделать sudo su -c "echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list"
, который сообщает системе запустить его от имени суперпользователя, доступ к которому вы получаете с помощью 'sudo' перед командой 'su'.
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, что su
команда, используемая вне указанной здесь команды, опасна, поэтому вы должны использовать этот метод только в том случае, если он вам абсолютно необходим. Поэтому вместо этого рассмотрите возможность использования здесь решения № 3.
Самое безопасное решение (№ 3): Используйте echo | sudo tee
И отдельный .list
Однако вы можете добиться того же, что и выше, даже не переходя к приглашению суперпользователя. С помощью этой команды:
echo 'deb http://www.duinsoft.nl/pkg debs all' | sudo tee -a /etc/apt/sources.list
Однако давайте также примем во внимание пункт 1 выше и вместо этого используем для него новый файл:
sudo touch /etc/apt/sources.list.d/duinsoft.listecho 'deb http://www.duinsoft.nl/pkg debs all' | sudo tee -a /etc/apt/sources.list.d/duinsoft.list
Таким образом, мы оставляем основную sources.list
отдельно, но исходные тексты будут добавлены через включенный файл, который специально обрабатывает этот репозиторий. (Кстати, именно так добавляются PPA!)