Передача --userspec
в chroot
— это не то же самое, что запуск su - user
внутри среды chroot; то есть домашний каталог по-прежнему является корневым, то есть /root
, поэтому bash
пытается прочитать /root/.bashrc
, что не разрешено для пользователей, не являющихся -root.
Вторая проблема, вероятно, связана с тем, что вы не включили все необходимые общие библиотеки в среду chroot. Из информационного документа chroot
:
If you want to use a dynamically linked executable, say ‘bash’, then first run ‘ldd bash’ to see what shared objects it needs. Then, in addition to copying the actual binary, also copy the listed files to the required positions under your intended new root directory. Finally, if the executable requires any other files (e.g., data, state, device files), copy them into place, too.
Решение — обновить Calibre до более новой версии, чем в testing
. Есть две альтернативы:
unstable
или experimental
дистрибутивов Debian Я выбрал вариант 2.Не рекомендуется смешивать пакеты из разных дистрибутивов. Использование чего-либо из experimental
еще более обескураживает . Но иногда программа, которую вы регулярно запускали, дает сбой, и вам нужно быстро ее исправить. Я не думаю, что вернуться к варианту 1 — лучший выбор в долгосрочной перспективе.
Поиск пакетов Debian показал, что хотя Calibre
недоступен в experimental
, вunstable
(существует более новая версия под кодовым названиемsid
).
unstable
как возможный источник пакетов Создать файл
sudo nano /etc/apt/sources.list.d/unstable.list
и вставьте
deb http://deb.debian.org/debian unstable main contrib non-free
experimental
как возможный источник пакетов Создать файл
sudo nano /etc/apt/sources.list.d/experimental.list
и вставить
deb http://deb.debian.org/debian experimental main contrib non-free
Ресинхронизировать индекс пакета
sudo apt-get update
затем s
имитировать то, что apt-get
будет делать
sudo apt-get -st unstable install calibre
затем, если вы считаете, что объем требуемых обновлений безопасен, введите команду без s
, чтобы выполнить фактическое обновление
sudo apt-get -t unstable install calibre
Когда вы закончите, отредактируйте unstable.list
и поставьте #
в начале записи, чтобы закомментировать ее. В противном случае apt
примет во внимание эти нестабильные версии при следующем upgrade
. Запустите sudo apt-get update
, чтобы повторно синхронизировать индекс пакета. Комментирование для experimental
не требуется из-за настроек приоритета пакетов apt
по умолчанию.
Хотя получение чего-либо из experimental
в данном случае не требуется, это может быть полезно в будущем. Например, чтобы получить последний пакет nvidia-driver
, вы должны использовать sudo apt-get -t experimental install nvidia-driver
.
Опция t
указывает apt
на временно отдать приоритет (для этого вызова только )версиям пакета из данного выпуска.Experimental
не является полным дистрибутивом , это расширение unstable
.