Шаблон именования файлов блокировки

Эта ошибка запускается как взаимодействие между гутенпринтом , фоматическим и чашками .

Быстрое решение:

  • Удалите gutenprint ,
  • или: Удалите пакет, предоставляющий / usr / lib / cups / driver / foomatic (который является foomatic -db-engine в Arch Linux),
  • или: вручную удалить файлы /usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml .

Более подробно:

Информационное обсуждение этой проблемы [ уже здесь ], поэтому я привожу лишь краткое изложение:

  • gutenprint устанавливает два сравнительно больших файла XML, а именно /usr/share/foomatic/db/source/driver/gutenprint-ijs-simplified.5.2.xml и / usr / share / foomatic / db / source / driver / gutenprint-ijs. 5.2.xml (как в текущей версии на момент написания этой статьи).
  • foomatic или один из его подпакетов ( foomatic-db-engine в Arch Linux) установите сценарий perl / usr / lib / cups / driver / foomatic .
  • Когда CUPS пытается получить список драйверов принтера, вызывается / usr / lib / cups / driver / foomatic list , что занимает слишком много времени для больших файлов XML (это ошибка из / usr / lib / cups / driver / foomatic ). В конце концов, это может закончиться, но время ожидания CUPS истекает раньше, не получив никакой информации о драйверах принтера, и вызывает эту странную Success -ошибку. Поскольку он не получил информацию о драйверах принтеров, невозможно добавить принтеры через какой-либо интерфейс в CUPS, кроме ручного редактирования файлов конфигурации.

Итак, пока / usr / lib / cups / driver / foomatic не исправлен для ускорения работы с большими файлами, вероятно, лучшим решением будет, если вы хотите иметь оба gutenprint и полная установка foomatic , чтобы вручную удалить два больших файла XML, предоставленных gutenprint. (Увеличение тайм-аута в CUPS не годится, так как можно ждать часами.)

Для Arch Linux, если пакет собирается локально (например, через систему сборки Arch или путем установки с помощью yaourt и настроив customizepkg ), можно применить следующий патч к PKGBUILD из gutenprint , чтобы внести изменения в пакет:

--- PKGBUILD.old        2016-04-14 18:13:15.000000000 +0200
+++ PKGBUILD.new        2016-04-14 18:41:47.000000000 +0200
@@ -47,5 +47,8 @@
 package() {
   cd ${pkgname}-${pkgver}
   make DESTDIR=${pkgdir} install
+
+  # The following line was added by '"'customizepkg-scripting'"', script '"'$0'"', in order to work around the bug described at https://bugs.archlinux.org/task/47718
+  rm -fv "${pkgdir}"/usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml
 }

2
27.04.2019, 12:09
2 ответа

Начальная точка скрывает файл из некоторых списков каталогов . Это происходит из-за исторического поведения команды ls, из-за которой многие программы использовали начальные точки для обозначения файлов, которые не должны отображаться в списках каталогов, что, в свою очередь, приводит к тому, что многие файловые менеджеры скрывают такие файлы по умолчанию.

Тильда является необычным символом в именах файлов, поэтому риск столкновения имени файла, выбранного пользователем, невелик. Почему тильда? Тильды особенно необычны в начале имен файлов, потому что ведущая ~означает «домашний каталог» в оболочках и многих других программах. Таким образом, добавление тильды вряд ли вызовет столкновение. Возможный дополнительный фактор, потому что, когда он находится в конце имени файла, это традиционный способ именования резервных копий , поэтому добавление тильды к имени файла имеет привкус «какого-то файла». это связано с этим другим файлом, но это не тот файл, который обычно нужен пользователю» (, но он не может быть в конце, потому что он уже занят ). Тильда, возможно, также была вдохновлена ​​​​файлами блокировки, используемыми Microsoft Office, которые начинаются с ~$.

Хэш в конце гарантирует, что файл не имеет расширения, которое могли бы распознать другие программы. Если файл назывался .~lock.MyDocument.odt, файловые менеджеры предлагали открыть его в LibreOffice. Почему хэш, а не какой-то другой символ? Hash имеет небольшую традицию использования в именах файлов блокировки, например, Emacs использует .#, за которым следует имя редактируемого файла.

2
27.01.2020, 21:58

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

Имя, выбранное LibreOffice, похоже, является скрытым именем, созданным таким образом, что маловероятно его столкновение с ранее -существующим именем файла, и в то же время специфичным для любого документа, который вы редактируете в данный момент.

2
27.01.2020, 21:58

Теги

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