Команда 'sudo tee' пошла не так | Удаление source.list, который нельзя прочитать?
Это происходило дважды, когда я следовал инструкциям по установке программного обеспечения и затем открывал центр программного обеспечения, а затем немедленно закрывался в результате выполнения команд из инструкций. Первый случай произошел, когда я пытался установить Mono. Я следовал их инструкциям до sudo tee /etc/apt/sources.list.d/mono-xamarin.list
, Остановленный терминал не отвечал, поэтому я снова ввел команду, и она просто повторила ее. Поэтому я закрыл его и попробовал еще раз, не повезло. Итак, я хотел проверить, есть ли в центре программного обеспечения только компилятор Mono CS, и именно тогда центр программного обеспечения начал закрываться сразу после открытия, и Ubuntu выдал мне эту ошибку
E: Type 'sudo' is not known on line 2 in the source list /etc/apt/sources.list.d/mono-xamarin.list
E: The list of sources could not be read
E: The package lists or status file could not be parsed or opened.
Я отформатировал свой компьютер до более ранней резервной копии, так как не смог найти ответ на эту ошибку и не знал, что сделал неправильно.
Теперь я попытался установить Spotify, и у них есть подобный список инструкций.
Добавьте репозиторий Spotify
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
Так я дошел до того момента, когда терминал больше не отвечал. Я попытался "выйти", чтобы закрыть его, но он просто повторил команду. После того, как я вручную закрыл его, я проверил центр программного обеспечения, чтобы увидеть, сделал ли я то же самое снова, и я сделал. Центр программного обеспечения не останется открытым и вернул ту же ошибку при попытке apt-get autoremove
E: Type 'exit' is not known on line 1 in source list /etc/apt/sources.list.d/spotify.list
E: The list of sources could not be read.
E: The package lists or status file could not be parsed or opened.
Мой первый вопрос - как мне удалить / восстановить список, а второй - как использовать sudo tee...
должным образом?
2 ответа
Ваша первая команда
sudo tee /etc/apt/sources.list.d/mono-xamarin.list
неправильно. Команда ожидает ввода и записывает в
/etc/apt/sources.list.d/mono-xamarin.list
Поэтому просто удалите файл
sudo rm /etc/apt/sources.list.d/mono-xamarin.list
и снова введите правильную команду и не забудьте
sudo apt-get update
Ваша вторая команда
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
верно. После этой команды у вас есть строка
deb http://repository.spotify.com stable non-free
в вашем /etc/apt/sources.list.d/spotify.list
, Проверить с
cat /etc/apt/sources.list.d/spotify.list
Команда tee
читать со стандартного ввода и записывать в стандартный вывод и файлы. Два примера
echo "foo" | tee bar
пишет строку foo
в файл bar
, Предыдущий контент будет перезаписан.
echo "foo" | tee -a bar
добавляет строку foo
в данный файл.
Команда tee bar
читает со стандартного ввода и записывает в файл bar
Начать тест с
tee bar
Введите несколько слов и остановитесь с помощью Ctrl-C. Сейчас начнем
cat bar
чтобы увидеть ваши изменения.
пример
% tee bar
foo
foo
bar
bar
^C
% cat bar
foo
bar
Я думаю, что я понял это. Я перешел к "другому программному обеспечению" в программном обеспечении и обновлениях и удалил некорректно работающий репозиторий из списка. Тогда я сделал sudo apt-get autoremove
который не остановился на ошибке на этот раз, поэтому я смог обработать sudo apt-get update
и я смог снова открыть центр программного обеспечения и держать его открытым. Я все еще получаю системную ошибку, говорящую, что 'выход' не известен в строке 2 в spotify.list. Я до сих пор не знаю, как это убрать.