Почему Plan 9 использует «snarf» вместо «copy»?

TL; DR Фактическое имя пакета - libatk-bridge2.0-0 , следовательно, libatk-bridge2.0 соответствует: libatk-bridge2.0-0 (который почти всегда там) и libatk-bridge2.0-dev .


Вы не установили libatk-bridge2.0 , вы установили другие вещи:

Note, selecting 'libatk-bridge2.0-0' for regex 'libatk-bridge2.0'
Note, selecting 'libatk-bridge2.0-dev' for regex 'libatk-bridge2.0'
libatk-bridge2.0-0 is already the newest version (2.18.1-2ubuntu1).
The following additional packages will be installed:
  libatspi2.0-dev libdbus-1-dev libxtst-dev x11proto-record-dev
The following NEW packages will be installed:
  libatk-bridge2.0-dev libatspi2.0-dev libdbus-1-dev libxtst-dev
  x11proto-record-dev
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.

И libatk-bridge2.0 соответствовали им, потому что фактическое имя пакета - libatk-bridge2.0-0 .

Затем ваша чистка снова использовала libatk-bridge2.0 и действительно соответствовала libatk-bridge2.0-0 , которую нужно было удалить. Провоцирование:

The following packages will be REMOVED:
  ***A LOT OF STUFF**

Это удаляет много вещей, потому что ATK (и его мост DBUS) находится близко к нижней части дерева зависимостей GNOME. Поэтому почти все, что зависело от среды GNOME и GTK, было помечено для очистки.


apt-get выполняет сопоставление регулярных выражений, когда не может найти точное имя пакета. Из man apt-get ( install command section):

 If no package matches the given expression and the expression
 contains one of '.', '?' or '*' then it is assumed to be a POSIX
 regular expression, and it is applied to all package names in the
 database. Any matches are then installed (or removed). Note that
 matching is done by substring so 'lo.*' matches 'how-lo' and
 'lowest'. If this is undesired, anchor the regular expression with
 a '^' or '$' character, or create a more specific regular
 expression.

Так что да, libatk-bridge2.0 имеет точку (. ]), поэтому его можно использовать в качестве регулярного выражения в глазах apt-get .

29
27.06.2017, 14:23
1 ответ

Сегодня я наткнулся на вполне разумное объяснение. Jargon File (ссылка) объясняет snarf так:

snarf: /snarf/, vt.

  1. [в сообществе Unix] Получить файл или набор файлов по сети. См. также blast. Этот термин вошел в обиход в конце 1960-х годов и означал 'есть по-свински'. В контексте он все еще может иметь такой оттенок. "Он находится на стадии хакерства - пересылает по FTP мегабайты материала в день. "

Похоже, что разработчики Плана 9 воспринимали копирование не как атомарное действие. Копирование - это фактически:

  • получение контента, который вы хотите скопировать (snarfing)
  • вставка контента в нужное место (pasting)

(Cutting, с другой стороны, это snarfing и deleting оригинального контента одновременно. )


Ответ Роба Пайка

Я задал этот вопрос в списке рассылки 9fans. Вы можете посмотреть тему здесь (ссылка)1.

Вот ответ1 который я получил от Роба Пайка:

Операция заключается не в копировании, а в snarf. Она называется snarf, потому что потому что "snarf" - это то, что он делает. Проектного документа не существует.


1: Как Stéphane Chazelas указал в комментарии, вы можете использовать http://marc.info/?t=147367568900005&r=1&w=2, чтобы избежать необходимости создавать учетную запись для просмотра архивов списка.

31
27.01.2020, 19:38

Теги

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