Если вы скопировали -вставили команду откуда-то, вы, вероятно, получили символ Unicode вместо ASCII (em -тире вместо -
или не -разрывающий пробел вместо пробела и т. д. ). Однако, если бы это было длинное -тире или что-то подобное, оно не рассматривалось бы как аргумент опции (, а рассматривалось бы как нераспознанная опция ). Поскольку --install /usr/bin/java
представлен как один аргумент в ошибке, пробел между ними, вероятно, не является пробелом ASCII, а пробелом Unicode .
Это происходит из-за того, что установленный вами пакет не соответствует пакетам, доступным в репозиториях, даже если они имеют одинаковые версии. (Как выяснил AB , это, по-видимому, основано на установленном размере пакета :, если версия установленного пакета идентична версии, доступной в репозиториях, но его установленный размер отличается, apt
захочет заменить пакет версией, доступной в репозиториях. Установленный размер указан в Packages
для удаленных пакетов и /var/lib/dpkg/status
для установленных пакетов. Все это, конечно, также зависит от приоритетов выводов пакетов.)
Всякий раз, когда вы собираете пакет локально, особенно если вы вносите в него изменения, рекомендуется обновлять журнал изменений, как если бы вы выполняли -не сопровождающую загрузку:
dch -n "Summary of your changes"
dch -r ignored
Таким образом, apt
не будет пытаться заменить ваш пакет пакетами в репозиториях, пока последние не будут обновлены.