Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Проблема взаимной блокировки coreutils и mktemp
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
Azik
Apprentice
Apprentice


Joined: 03 Apr 2005
Posts: 151
Location: Russia, Ufa

PostPosted: Thu Jan 24, 2008 5:39 am    Post subject: Проблема взаимной блокировки coreutils и mktemp Reply with quote

Coreutils версии 6.10 и выше теперь содержат в себе команду /bin/mktemp, из-за чего блокируется пакет sys-apps/mktemp. Этот пакет может быть необходим другим пакетам, поэтому при обновлении возникает взаимная блокировка обоих указанных пакетов.

Решение: обновить дерево портежей и удалить sys-apps/mktemp. Подробности: https://bugs.gentoo.org/show_bug.cgi?id=207118

Code:
emerge -C sys-apps/mktemp
emerge -av sys-apps/coreutils


Что делать, если удален coreutils

Найти и скачать бинаруный пакет coreutils и установить его, либо попросить кого-нибудь сделать такой для себя.
Code:
quickpkg coreutils

Установка пакета
Code:
emerge -k coreutils

_________________
From Siberia with Love!


Last edited by Azik on Sun Apr 20, 2008 4:16 am; edited 2 times in total
Back to top
View user's profile Send private message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Sat Apr 19, 2008 3:05 am    Post subject: Reply with quote

Подскажите, из каких посылок правильный пользователь Gentoo Linux делает вывод, что после удаления mktemp система будет достаточно работоспособна, чтобы суметь нормально обновить coreutils?
Back to top
View user's profile Send private message
Azik
Apprentice
Apprentice


Joined: 03 Apr 2005
Posts: 151
Location: Russia, Ufa

PostPosted: Sat Apr 19, 2008 7:40 pm    Post subject: Reply with quote

не понял?
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Sat Apr 19, 2008 9:44 pm    Post subject: Reply with quote

Обычно, если делается unmerge чего-то, что пользователь сам не ставил, всегда есть опасность получить нерабочую систему. Например, некоторые в описанной ситуации удаляли coreutils, после чего уже вообще ничего не могли делать, не говоря уж о том, чтобы вновь сделать emerge.

Приведённый Вами рецепт подразумевает, что после удаления mktemp система будет работоспособна. По крайней мере, emerge coreutils в такой ситуации сработает.

Посмотрев на сообщение о блокировке и почитав ChangeLog у coreutils, можно понять, что теперь /bin/mktemp является частью coreutils, а потому mktemp не нужен. То есть можно смело снести mktemp и *одновременно* обновить coreutils.

Но в portage нет команды "сделать A и B" одновременно. Где-то в гугле советуют сначала *собрать* новый coreutils, а потом снести mktemp и поставить только что собранный coreutils. Здесь Вы советуете смело сносить mktemp, и лишь потом собирать новый coreutils. То есть подразумевается безопасность такой процедуры.

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

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

Или всё же Вы наверняка знали, что именно так делать можно? Если да, как Вы пришли к этому выводу? Какие именно слова в https://bugs.gentoo.org/show_bug.cgi?id=207118 это означают?

Мой вопрос не о том, что мне сделать правильно. Мой вопрос о том, как мне рассуждать, чтобы делать правильно, и не утруждать других вопросами типа "я сделал unmerge coreutils, т.к. в handbook рекомендовали удалить один из blocker-пакетов. Как жить дальше?".
Back to top
View user's profile Send private message
Azik
Apprentice
Apprentice


Joined: 03 Apr 2005
Posts: 151
Location: Russia, Ufa

PostPosted: Sun Apr 20, 2008 4:09 am    Post subject: Reply with quote

Обратно не понял.
Данный пост я на писал из эмпирическеского опыта, самолично столкнувшись с проблемой и успешно решив ее так, как это указано. И ход мыслей был таков
1. Почему они блокируют друг друга
2. Кто из них менее ценен
3. Что по этому поводу пишет багзилла

Найдя все ответы и убедившись в верности рассуждений, я обнаружил, что многие на формумах не делают так, а именно сносят вчистую coreutils, не думая о последствиях. Это меня побудило создать этот пост.
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
Laitr Keiows
Bodhisattva
Bodhisattva


Joined: 04 Jul 2005
Posts: 891
Location: Kobe, Japan

PostPosted: Sun Apr 20, 2008 4:57 am    Post subject: Reply with quote

user11 wrote:
Приведённый Вами рецепт подразумевает, что после удаления mktemp система будет работоспособна. По крайней мере, emerge coreutils в такой ситуации сработает.

Посмотрев на сообщение о блокировке и почитав ChangeLog у coreutils, можно понять, что теперь /bin/mktemp является частью coreutils, а потому mktemp не нужен.

Этот рецепт работает, я неоднократно проверял. Более того, разве из того что теперь /bin/mktemp является частью coreutils не следует что coreutils могут собраться без mktemp? :)
Back to top
View user's profile Send private message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Sun Apr 20, 2008 10:35 am    Post subject: Reply with quote

Quote:
Данный пост я на писал из эмпирическеского опыта, самолично столкнувшись с проблемой

Quote:
Этот рецепт работает, я неоднократно проверял

Спасибо. Подход я понял, буду иметь в виду.

Остаётся понять, есть ли какой-то формальный путь, пусть даже негласно:

Quote:
Более того, разве из того что теперь /bin/mktemp является частью coreutils не следует что coreutils могут собраться без mktemp?

А почему следует? Afaik, утверждение "если A является частью B, то B может собраться без A" в общем виде не верно. Пример: /bin/mv является частью coreutils, но coreutils без mv собраться не может (src_install() использует mv). Видимо, в этом рассуждении пропущен ещё какой-то неведомый мне шаг.

PS. К слову, несмотря ни на что, перед unmerge mktemp я всё же на всякий случай "cp `which mktemp` ~" ;-)
Back to top
View user's profile Send private message
OpticalDezires
n00b
n00b


Joined: 22 Aug 2005
Posts: 72
Location: Riga, Latvia

PostPosted: Tue Jun 03, 2008 7:45 am    Post subject: Reply with quote

Сделал так:
Code:
emerge -f coreutils && emerge -C mktemp && emerge coreutils

и всё работает =)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum