Установка Python дает dpkg ошибку

Необходимо определить переводы после разветвления.

Выборка от прекрасной статьи по LWN.net: "Системные вызовы, которые возвращают пользователя процесса и идентификаторы группы — например, getuid() и getgid() — всегда возвращайте учетные данные, поскольку они появляются в пользовательском пространстве имен, в котором находится обработка вызовов. Если идентификатор пользователя не имеет никакого отображения в пространстве имен, то системные вызовы, которые возвращают идентификаторы пользователей, возвращают значение, определенное в файле /proc/sys/kernel/overflowuid, который на стандартные системные значения по умолчанию к значению 65534. Первоначально, пользовательское пространство имен не имеет никакого отображения идентификатора пользователя, таким образом, все идентификаторы пользователей в пространстве имен отображаются на это значение. Аналогично, новое пользовательское пространство имен не имеет никаких отображений для идентификаторов группы, и все неотображенные идентификаторы группы отображаются на /proc/sys/kernel/overflowgid (который имеет то же значение по умолчанию как overflowuid)."

В основном, после того как Вы имеете clone(2)'d от Вашего потомства, Вы будете иметь PID ребенка и сможете добавить к таблицам в /proc/CHILDPID/uid-map и /proc/CHILDPID/gid-map начать определять переводы.

Поскольку я понимаю ситуацию, если Вы работаете seteuid(50) в Вашем новом пространстве имен без перевода для него Вы найдете, что Ваш euid все еще 65534, пока перевод не определяется. Как выше, если нет никакого перевода соответствия, overflowuid/overflowgid будет заменен.

Статья LWN.net, которая объясняет большую часть ситуации блестяще, здесь: http://lwn.net/Articles/532593/

2
03.07.2014, 15:39
2 ответа

0 модернизировано, 6 вновь установлено, 0 удалено и 488 не модернизировано.

Проблема здесь в том, что вы находитесь между несколькими путями обновления для каждого пакета. Вы не используете ни стабильный, ни тестируемый, и это приводит к проблемам. Сначала вы должны обновить как можно больше пакетов до стабильного:

sudo apt-get -t stable dist-upgrade

Затем решите, хотите ли вы понизить все до стабильного или пройти до тестирования, в этом случае вы должны удалить стабильные записи в вашем source.list и снова обновиться:

sudo sed -i '/stable/d' /etc/apt/sources.list
sudo apt-get dist-upgrade

Я бы лично просто переустановил систему, чтобы убедиться, что больше нет проблем с зависимостями, и придерживаться либо стабильного, либо тестируемого пути. Я не знаю, что Knoppix использует за основу, но, похоже, вы не используете никакой другой репозиторий, кроме Debian.

2
27.01.2020, 22:00

На мой взгляд, здесь нет ничего, что можно было бы разумно исправить. После обсуждения плаката в чате, стало ясно, что он в основном делает неподдерживаемые вещи.

Сначала он установил Knoppix, а затем добавил репозитории Debian, а затем попытался установить/обновить пакеты Debian. Насколько я могу судить, это не поддерживается ни Knoppix, ни Debian, ни кем-либо ещё. Очевидно, что постер прочитал на форумах Knoppix, что после установки Knoppix это был Debian, и из этого сделал вывод, что он может установить пакеты Debian в свою установку Knoppix. Это правда, что Knoppix основан на Debian, и все пакеты Knoppix являются пакетами Debian, но версии пакетов в установке плакатов не отображаются (на основе предоставленной им информации), чтобы соответствовать тем, которые доступны в настоящее время в архивах Debian. Поэтому неудивительно, что смешивание версий пакетов Knoppix с несовместимыми версиями, найденными в стабильном, нестабильном и т.д. Debian, должно вызвать проблемы.

Я рекомендовал плакату, чтобы он попробовал просто использовать Debian. Добавление Knoppix не имеет никаких преимуществ, а просто вызывает проблемы.

2
27.01.2020, 22:00

Теги

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