Невозможно войти в мою учетную запись

Быстрый ответ
  • remove удаляет пакеты, названные в его честь.
  • autoremove удаляет все автоматически установленные пакеты, которые больше не нужны. Неправильно перечислять имена пакетов после autoremove; они будут проигнорированы (и все подходящие пакеты будут удалены), что, вероятно, не то, что вы намеревались.
  • --purge также приводит к удалению общесистемных файлов конфигурации, связанных с удаляемыми пакетами. Он должен сопровождаться командой, такой как remove или autoremove. Флаг --purge изменяет действие команды; оно не действует само по себе.
  • purge означает то же самое, что и --purge remove (что совпадает с remove --purge). Неверно говорить purge дважды; второе purge интерпретируется как имя пакета, которое будет purge d, что, вероятно, не то, что вы намереваетесь.

Полный ответ

Чтобы понять, что эти команды делают и чем они отличаются, полезно (и, вероятно, даже важно) понять две концепции:

  1. различие между установленными вручную и автоматически установленными пакетами
  2. различие между файлами пакета пакета и его файлами конфигурации

Установка вручную или автоматическая установка

Установленный пакет либо устанавливается вручную , либо устанавливается автоматически .

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

Но могут быть установлены и другие пакеты. Большинство пакетов имеют зависимости - другие пакеты, которые должны быть установлены, чтобы эти пакеты работали, как предполагалось. Когда вы устанавливаете пакет, устанавливаются его зависимости (то есть другие пакеты, от которых он зависит), за исключением тех, которые были установлены ранее.

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

Обратите внимание, что если у вас установлено два пакета, и один из них является зависимостью от другого, это не означает, что эта зависимость устанавливается автоматически. Также возможно, что зависимость была установлена ​​вручную (то есть указана вами, например, установлена ​​до или одновременно с пакетом, который от нее зависит).

Наконец:

  • Если вы попытаетесь вручную установить уже установленный пакет, он останется установленным. Но если он был установлен автоматически, изменение вносится - при попытке установить его вручную он помечается как установленный вручную.
  • Вы можете пометить любой пакет как установленный вручную или автоматически (с помощью команды apt-mark ), независимо от того, как или при каких обстоятельствах они были фактически установлены.
  • Пакеты, поставляемые с предустановленной системой Ubuntu, не все устанавливаются автоматически; некоторые из них отмечены как установленные автоматически, а другие отмечены как установленные вручную. Это должно удовлетворить логику, лежащую в основе различия между пакетами, устанавливаемыми вручную и автоматически, - идея о том, что некоторые пакеты нужны только для обслуживания других.

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

apt-get autoremove удаляет автоматически установленные пакеты, в которых больше нет пакетов, установленных вручную, в зависимости от них.

Файлы пакета и файлы конфигурации

Пакет предоставляет файлы, которые должны быть и должны быть одинаковыми в каждой системе, где установлена ​​эта версия этого пакета. Такие файлы предоставляют исполняемые файлы, ресурсы, документация и другие «активы» для установленных программ. Обычно мы просто называем эти «файлы», которые предоставляет пакет.

Но пакет предоставляет и другие файлы, которые предназначены (возможно) для изменения. Они называются глобальными (или общесистемными) файлами конфигурации. Они почти всегда устанавливаются в каталог /etc, и их можно автоматически и вручную изменять для изменения поведения установленных программ. Например, sudo имеет файл конфигурации /etc/sudoers и каталог для дополнительных файлов конфигурации /etc/sudoers.d. Этот файл и любые файлы, добавленные в этот каталог, указывают, кому разрешено использовать sudo и каким образом.

Как правило, желательно, чтобы удаление пакета и последующая его установка не изменили его поведение (если только файлы пакета не были повреждены, и поэтому вы, конечно, переустановили его). Поэтому, как правило, когда пакет удаляется, его файлы пакета удаляются, но его общесистемные файлы конфигурации остаются нетронутыми.

Когда вы удаляете пакет, не указывая, что его общесистемные файлы конфигурации также должны быть удалены, это называется «удалением» пакета.

Если вы также хотите удалить общесистемные файлы конфигурации пакета при удалении пакета, это называется «очисткой» пакета.

apt-get remove удалит пакет; то есть он удалит пакет, но оставит общесистемные файлы конфигурации.

apt-get purge очистит пакет; то есть он удалит пакет, а также обязательно удалит его общесистемные файлы конфигурации.

Другим способом очистки пакетов является использование флага --purge. Это не говорит apt-get, что делать; вместо этого он изменяет то, что ему говорят термины (или «команды»), такие как remove. Флаг --purge приводит к тому, что любые деинсталляции пакетов сопровождаются удалением общесистемных файлов конфигурации для деинсталлируемых пакетов. Другими словами, флаг --purge превращает удаления в чистки.

Почему у нас есть флаг --purge, когда у нас есть команда purge? В конце концов, sudo apt-get --purge remove packagename не эквивалентно sudo apt-get purge packagename. Они эквивалентны. Когда --purge пригодится, вам нужно изменить поведение команд , отличное от , чем remove.

Например, предположим, что вы хотите удалить автоматически установленные пакеты, которые больше не нужны (поскольку в зависимости от них больше нет установленных вручную пакетов), но вы не просто хотите удалить эти автоматически установленные пакеты, вы также хотите удалить их общесистемные файлы конфигурации. Тогда вы можете выполнить:

sudo apt-get --purge autoremove

Давайте рассмотрим еще одно использование --purge. Существует флаг под названием --reinstall, который превращает установки в переустановки. Это означает, что обычно при попытке установить пакет, который уже установлен, либо ничего не происходит, либо (если пакет помечен как автоматически установленный) пакет будет помечен как установленный вручную. Но с флагом --reinstall установка пакета, который уже установлен, приводит к его удалению , а затем обратно :

sudo apt-get --reinstall install packagename

Но предположим, что вы хотите удалить общесистемные файлы конфигурации пакета, который вы переустанавливаете. Это несколько распространено; когда пакет не работает, и вы не знаете, почему, вы можете попробовать переустановить его, а также удалить его файлы конфигурации, чтобы его конфигурация была сброшена до значения по умолчанию. Для этого вы можете выполнить:

sudo apt-get --purge --reinstall install packagename

--reinstall превращает установку в переустановку (т. Е. Удаление с последующей установкой), а --purge превращает часть удаления переустановки в продувку.

Поведение ваших примеров

Теперь должно быть ясно, что именно делает каждая из ваших примеров apt-get команд:

  • sudo apt-get autoremove --purge packagenames

    Это удаляет автоматически установленные пакеты, у которых больше нет установленных вручную пакетов, которые зависят от них. То есть, он удаляет эти пакеты (что влечет за собой удаление файлов их пакетов), а также удаляет их общесистемные файлы конфигурации.

    Здесь packagenames ничего не делает. В частности, если вы намеревались просто удалить пакеты, имена которых указаны там, тогда это не будет вести себя так, как вы собираетесь.

  • sudo apt-get remove --purge packagenames

    Эта чистка packagenames; предполагая, что packagenames - это список имен пакетов, разделенных пробелами, он удалит их все. То есть он удалит их (что влечет за собой удаление файлов их пакетов), а также удалит их общесистемные файлы конфигурации.

    Если какой-либо из пакетов, перечисленных в packagenames, не установлен, его присутствие в списке не окажет никакого влияния (за исключением того, что вам сообщат, что он не был установлен). Если вы укажете имена пакетов, которые не являются именами каких-либо реальных пакетов, команда завершится с ошибкой unable to locate packagename.

  • sudo apt-get purge purge packagenmaes

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

  • sudo apt-get remove packagenames

    Это удаляет пакеты, перечисленные в packagenames, что влечет за собой удаление их файлов пакетов. Это не удаляет их общесистемные файлы конфигурации (потому что это просто удаление, а не очистка).

  • sudo apt-get autoremove

    Удаляет автоматически установленные пакеты, у которых больше нет установленных вручную пакетов, которые зависят от них. Это влечет за собой удаление их файлов пакета, но не их общесистемных файлов конфигурации (то есть, это удаление, но не очистка).

Для получения дополнительной информации о том, как использовать apt-get, я рекомендую его справочную страницу . Для получения более общей информации см. это руководство .

21
задан 05.12.2019, 01:40

6 ответов

Ни одно из предыдущих предложений здесь не сработало для меня, но это имело значение:

В /etc/X11/default-display-manager изменили lightdm на /usr/sbin/lightdm

Я не беру за это никакого кредита; просто нашел это онлайн где-то среди пятидесяти других возможностей после нескольких дней проб и ошибок. 11.10 обновлен и пробует проприетарный драйвер ATI fglrxdrm 8.93.4

0
ответ дан 05.12.2019, 01:40

Я попробовал большинство из приведенных выше предложений, но после поиска в Google это сообщение об ошибке, найденное в .xsession-errors

mkdtemp: private socket dir: Permission denied

нашло этот ответ работающим

sudo chmod 1777 / tmp

http://mihirknows.blogspot.com/2008/06/mkdtemp-private-socket-dir-permission.html

0
ответ дан 05.12.2019, 01:41
  • 1
    Запоздалое спасибо за это, спас мою жизнь. Измененный перманент на/tmp вчера, couldn' t входят в систему к ноутбуку сегодня. Видел это и пошел, ах – Kailas 05.12.2019, 01:41

Мне удалось исправить это самостоятельно, удалив файл ~/.Xauthority. Для записи вы можете найти журналы запуска LightDM в /var/log/lightdm - оттуда я смог увидеть, что LightDM застрял на чем-то в этом файле, поэтому я переименовал его и смог успешно войти в систему.

0
ответ дан 05.12.2019, 01:42
  • 1
    Зарегистрированный ошибка? Потребности, которые будут обращены. – hamncheez 05.12.2019, 01:42
  • 2
    Не сделал зафиксированный в моем случае. использование 64-разрядного Ubuntu 12.04. – Paul 05.12.2019, 01:42

GDM все еще здесь, если вы хотите, вы можете сделать следующее:

sudo dpkg-reconfigure lightdm

И на запрос появится вопрос, хотите ли вы начать с LightDM или GDM. Поэтому, если вы снова застряли с LightDM или вам это не нравится, вы всегда можете вернуться к GDM.

Но решение Джорджа Эдисона должно работать.

0
ответ дан 05.12.2019, 01:43

Та же проблема в Lubuntu 11.10 - вход в GUI невозможен, но проблема была в DISK SPACE, когда я зашел в консоль и попытался запустить MC, я получил предупреждение о дисковом пространстве, удалил некоторые файлы и теперь все работает нормально.

0
ответ дан 05.12.2019, 01:43
  • 1
    У меня была подобная проблема при выполнении выделенной машины XBMC с Lubuntu 11.10. Оказывается, что/var/log так или иначе заполнил диск. – jpaugh 05.12.2019, 01:44

У меня возникла такая же проблема (Ubuntu 12.04 LTS). Я думаю, что это потому, что я пробовал startx -команду с sudo.

Я обнаружил, что файл ~ / .Xauthority принадлежал пользователю root, поэтому на экране входа в систему я нажал ctrl+alt+f2 и оттуда изменил владельца обратно на меня (sudo chown user:user .Xauthority) и смог войти снова.

0
ответ дан 05.12.2019, 01:44
  • 1
    Это работало на меня..:) Ubuntu 12.04 LTS.. Я изменил разрешение также: chmod 777 .Xauthority – Jbadminton 05.12.2019, 01:44
  • 2
    У меня был корень и также как у обычного пользователя. Но не сделал зафиксированный в моем случае. – Paul 05.12.2019, 01:45

Теги

Похожие вопросы