apt-get install с '-' (минус / дефис) удаляет пакеты
Я искал какую-то посылку (nautilus-terminal
) и случайно сделал это:
$ sudo apt-get install nautilus-
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
apturl apturl-common libgail-3-0 linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-57-generic
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
gnome-session-flashback nautilus nautilus-sendto nautilus-share ubuntu-desktop
0 upgraded, 0 newly installed, 5 to remove and 69 not upgraded.
After this operation, 2 031 kB disk space will be freed.
Do you want to continue? [Y/n] ^[[^C
Это довольно опасно, потому что удалить намного сложнее, чем простую черту из-за неудачного автозаполнения.
Это эквивалент apt-get remove
? Я не мог найти документацию для этого. Изменить: кроме просмотра справочной страницы...
2 ответа
От man apt-get
:
устанавливать установка сопровождается одним или несколькими пакетами, необходимыми для установка или обновление. Каждый пакет - это имя пакета, а не полное имя файла (например, в системе Debian, apt-utils будет предоставленным аргументом, а не кв-utils_1.2.10_amd64.deb). Все пакеты, требуемые Пакеты, указанные для установки, также будут извлечены и установлены. Файл /etc/apt/sources.list используется для поиска желаемые пакеты. Если к имени пакета добавляется дефис (с нет промежуточного пространства), идентифицированный пакет будет удален, если он установлено. Точно так же знак плюс может использоваться для обозначения пакет для установки. Эти последние функции могут быть использованы для переопределения решения, принятые системой разрешения конфликтов apt-get.
Следующие два означают одно и то же:
# apt-get remove nautilus
# apt-get install nautilus-
Так что, если вы просто устанавливаете или удаляете одну вещь, то на самом деле нет причин выбирать одну из них, а remove
команда также может быть использована.
Оператор "минус" пригодится в тех случаях, когда вы хотите удалить один пакет и установить другой в той же операции:
# apt-get install php5-cgi libapache2-mod-php5-
Я не мог придумать лучшего примера, но есть некоторые ситуации, когда удаление одного и добавление другого в отдельных операциях может вызвать дополнительные ненужные установки или удаления, в то время как выполнение их обоих в одной операции немедленно удовлетворит некоторые взаимозависимости и сделает это общая более простая операция.
Что касается того, добавляет ли минус облегчение непреднамеренного удаления чего-либо непреднамеренно, я прежде всего рекомендую вам в любом случае легко непреднамеренно нанести ущерб вашей системе в командной строке. Он не был создан, чтобы защитить вас от самого себя, и существуют миллиарды даже более простых команд, которые могут связать вашу систему. Но во-вторых, в этом случае он точно говорит вам, что собирается делать, и подтверждает, что вы действительно хотите это сделать. Это низкий риск.