/etc/apt/sources.list "E212: невозможно открыть файл для записи

Я пытаюсь редактировать sources.list с помощью редактора vi, но при этом сохраняя следующую ошибку:

/etc/apt/sources.list" E212: Can't open file for writing

Ответ 1

For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.

Vim имеет встроенную справочную систему. Я только что процитировал, что он говорит :h E212.

Возможно, вы захотите отредактировать файл как суперпользователь как sudo vim FILE. Или, если вы не хотите выходить из существующего сеанса vim (и теперь имеете надлежащие права sudo), вы можете выполнить:

:w !sudo tee % > /dev/null

Который сохранит файл.

НТН

Ответ 2

Это происходит со мной все время, я открываю корневой файл для записи:

Вместо того, чтобы потерять все ваши изменения и снова открыть с помощью sudo. Просмотрите эту демонстрацию о том, как сохранить эти изменения:

Однажды программа Setup для создания корневого файла только для чтения для более низкого пользователя:

sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el

Сначала откройте файл как обычный пользователь:

vi temp.txt

Затем внесите некоторые изменения в файл, он предупреждает вас только для чтения. Используйте эту команду.

:w !chmod 777 %

Затем напишите файл:

:wq!

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

Объяснение того, что делает эта команда:

Файл w означает запись файла. Бэнг означает начало интерпретации как оболочки. chmod означает разрешение на изменение, 777 означает полные разрешения везде. Процент означает текущее имя файла.

Он применяет изменения. И он спрашивает, хотите ли вы повторно загрузить. Нажмите "O" для "Ok". Не перезагружайтесь или вы потеряете свои изменения.

Ответ 3

Или, возможно, вы находитесь на смонтированном только fs

Ответ 4

Для меня было довольно простое решение. Я пытался отредактировать/создать файл в папке, которая не существует. Поскольку я уже был в папке, я пытался изменить/создать файл.

т.е. pwd folder/file

и печатал

sudo vim folder/file

и, скорее, он искал папку в папке и не смог ее сохранить.

Ответ 5

Я ссылался на Zsolt на уровне 2, я ввожу:

:w !sudo tee % > /dev/null

а затем в моей ситуации я до сих пор не могу изменить файл, поэтому он предложил добавить "!". поэтому я ввожу

:q! 

то он работает

Ответ 6

для меня работала с изменением файловой системы с Read-Only перед запуском vim:

bash-3.2# mount -o remount rw /

Ответ 7

Попробуйте подключиться как root, а затем отредактируйте файл. Это работает для меня

Ответ 8

Возможно, файл, к которому вы обращаетесь, имеет своп-копию (или своп-версию), уже находящуюся в том же каталоге

Поэтому сначала посмотрите, существует или нет скрытый файл.

Например, см. Следующий тип файлов

.system.conf.swp

Используя команду

ls -a

И затем удалите его, используя...

rm .system.conf.swp

Обычно я рекомендую начать использовать привилегии суперпользователя, используя...

sudo su

Ответ 9

Я получил эту ошибку, когда использовал git rm в файле в каталоге.

Я был в чем-то вроде ~/gitRepo/code/newFeature

В newFeature был только один файл. Я сделал git rm в этом файле, а затем попытался создать новый файл myNewFile, используя vi.

Ubuntu показал мне, что все еще находится в каталоге newFeature, но на самом деле git rm удалил весь каталог.

Мне пришлось выйти из vi, перейти к одному каталогу, а затем воссоздать каталог newFeature.

Ответ 10

Вам просто нужно получить доступ к Gemfile с правами доступа root. Перед vi:

команда:

sudo su -

тогда:

vi ~/...