Вы здесь

Проблема с блокировками [РЕШЕНО]

Проблема с блокировками - как их преодолевать?
Вот допустим, такая блокировочка
[blocks B ] '<'sys-apps/util-linux-2.13 ("'<'sys-apps/util-linux-2.13" is blocking sys-apps/coreutils-7.1)
Как ее преодолевать? мочить util linux? что-то мне ссыкотно, что потом смогу все поставить обратно, ибо сейчас он не компилится.

mount-mount.o: In function `try_mount_one':
mount.c:(.text+0x194b): undefined reference to `security_get_initial_context'
collect2: ld returned 1 exit status
make[2]: *** [mount] Ошибка 1
make[2]: Leaving directory `/var/tmp/portage/sys-apps/util-linux-2.14.2/work/util-linux-ng-2.14.2/mount'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/var/tmp/portage/sys-apps/util-linux-2.14.2/work/util-linux-ng-2.14.2'
make: *** [all] Ошибка 2

Как это делают опытные джедаи?

Ну чтобы так страшно не было, выполните

quickpkg --include-config=y '=sys-apps/util-linux-2.13'

Потом сможете установить при помощи

emerge -k '=sys-apps/util-linux-2.13'

—

Я ♥ Gentoo & Funtoo

Спасибо большое, реально помог. +1
Тогда еще вопрос - а какие гентушные утилиты наиболее юзабельные?
Я пользуюсь emerge, portageq, equery, eix, revdep-rebuild, ufed, eselect, etc-update
Плюс quickpkg выучу. Есть что нибудь еще, чем пользуются гуру?

buildpkg в FEATURES.

dancingfire написал:
buildpkg в FEATURES.

Может оказаться избыточным.
Правильный минимум --- buildsyspkg.

—

:wq
--
Live free or die

Не знаю, чем пользуются "гуру", но могу посоветовать в дополнение к перечисленным euse из app-portage/gentoolkit и утилиты из portage-utils.

—

Я ♥ Gentoo & Funtoo

genlop ещё

—

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Так как время в логе emerge (/var/log/emerge.log) записывается в формате UNIX
(«количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»), что не удобно для просмотра человеком. Где-то на просторах Internet'а был найден такой скриптик:

#!/bin/sh
# В логе emerge (/var/log/emerge.log) дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощю awk можно так
cat /var/log/emerge.log | awk -F: '{print strftime("%c", $1),$2}' | less

который позволяет просматривать лог несколько удобнее.

—

Я ♥ Gentoo & Funtoo

Lupo Alberto написал:
Так как время в логе emerge (/var/log/emerge.log) записывается в формате UNIX
(«количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»), что не удобно для просмотра человеком. Где-то на просторах Internet'а был найден такой скриптик:

#!/bin/sh
# В логе emerge (/var/log/emerge.log) дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощю awk можно так
cat /var/log/emerge.log | awk -F: '{print strftime("%c", $1),$2}' | less

который позволяет просматривать лог несколько удобнее.

Данная фича (формат записи времени) свойственен не только этому логу.
С точки зрения вумных книжек (придёт glyanchik --- можно будет попросить поцитировать) скрипт написан не оптимальным образом.
Я бы рекомендовал следующий формат:
recode_time.sh:

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощю awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
if [ -s $1 ]
then
  awk -F: '{print strftime("%c", $1),$2}' $FILE | less
else
  echo "В качестве аргумента должен быть указан не пустой лог-файл"
fi

ИМХО однозначно в FAQ или (что лучше) в специально созданный близкий по сути и структуре, но отличный по наполнению раздел полезных скриптов (тема на форуме уже поднималась).

—

:wq
--
Live free or die

Ну мой-то скрипт "узкоспециализированный" :) и, главное, он делает ровно то, что мне нужно. А так, конечно, совершенству нет предела! :)

—

Я ♥ Gentoo & Funtoo

Этот скрипт точно рабочий?
Я бы чуть изменил

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощю awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
if [ -s $1 ]
then
FILE=$1
  awk -F: '{print strftime("%c", $1),$2}' $FILE | less
else
  echo "В качестве аргумента должен быть указан не пустой лог-файл"
fi

—

Я ♥ Gentoo & Funtoo

Lupo Alberto написал:
Этот скрипт точно рабочий?

В процессе копи-паста один момент упустил.

—

:wq
--
Live free or die

Во избежание путаницы и в целях обеспечения переносимости, я бы развил идею правки:

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощью GNUтого awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
LOGFILE=$1
if [ -s $LOGFILE ]
then
  gawk -F: '{print strftime("%c", $1),$2}' $LOGFILE | less
else
  echo "В качестве аргумента должен быть указан не пустой лог-файл"
fi

ЗЫ: Понимаешь что меня сподвигло в этом направлении? ;)

—

:wq
--
Live free or die

Ещё 5 копеек в сокровищницу программерской мысли :)
У скрипта обнаружилась "бага" - запущенный без аргументов зависает, при более чем одном аргументе парсит только первый.
Немного творчески развил

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# («количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд»).
# Сконвертировать время с помощью GNUтого awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
if [ $# = 1 ]
    then
    LOGFILE=$1
        if [ -s $LOGFILE ]
            then
            gawk -F: '{print strftime("%c", $1),$2}' $LOGFILE | less
            else
            echo "В качестве аргумента должен быть указан не пустой лог-файл"
        fi
    else
    echo "В качестве аргумента должен быть указан только один лог-файл"
fi

—

Я ♥ Gentoo & Funtoo

хотя, возможно, с потерей некоторой части очевидности (для не читавшего ABS).

recode_time.sh:

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# (<<количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд>>).
# Сконвертировать время с помощью GNUтого awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
LOGFILE=$1
if [ $# = 1 -a -s $LOGFILE ]
then
    gawk -F: '{print strftime("%c", $1),$2}' $LOGFILE | less
else
    echo "В качестве аргумента должен быть указан не пустой лог-файл"
    echo "И этот файл должен быть единственным аругментом!"
fi

ЗЫ: А ещё можно (нужно?) вставить проверку наличия в системе этого самого gawk'а.

—

:wq
--
Live free or die

recode_time.sh:

#!/bin/sh
# В логах многих приложений дата время записывается в формате UNIX
# (<<количество секунд, прошедших с полуночи 1 января 1970 года без учета високосных секунд>>).
# Сконвертировать время с помощью GNUтого awk можно так
# awk -F: '{print strftime("%c", $1),$2}' $FILE
LOGFILE=$1
if [ $# = 1 -a -s $LOGFILE ]
then
    if type gawk &>/dev/null
    then
        gawk -F: '{print strftime("%c", $1),$2}' $LOGFILE | less
    else
        echo "gawk не найден!"
    fi
else
    echo "В качестве аргумента должен быть указан не пустой лог-файл"
    echo "И этот файл должен быть единственным аругментом!"
fi 

—

Ubuntu is an African Word that means "Gentoo is too hard for me"

AAA! ROFL! Ну вы даете. Патентуйте, пока никто идею не увел. Уже и команда разработчиков есть...

Резюмируем, господа.
Итак, проблемы с блокировками чаще всего лечатся удалением блокирующих пакетов (только мозг отключать не надо, когда удаляем), на всякий случай можно сделать бэкап quickpkg --include-config обоих пакетов. Если вдруг потом навернется, можно будет откатиться через emerge -k

Затем, проблема с установкой util-linux (было и такое, не компилировалось, первый пост) решилась через установку нового профиля (2008/server) и в нем поставлен был gcc 4.3.2 (http://www.gentoo.ru/node/3597#comment-17997)

Все правильно?

вопрос по quickpkg:
Если поставить бинарный пакет например sys-apps/util-linux-2.13
как потом он обновится до след версии, например sys-apps/util-linux-2.14, как обычно из исходников, или есть какие-то заморочки?

Если использовать:

emerge sys-apps/util-linux

установится из исходников доступная на данный момент версия;

emerge -k sys-apps/util-linux

установится бинарный пакет, если только в дереве нет более новой версии;

man emerge написал:

--usepkg (-k)
              Tells  emerge to use binary packages (from $PKGDIR) if they are available, thus possibly avoiding some time-con-
              suming compiles.  This option is useful for CD installs; you can export PKGDIR=/mnt/cdrom/packages and then  use
              this option to have emerge "pull" binary packages from the CD in order to satisfy dependencies.

emerge -K sys-apps/util-linux

установится версия, для которой имеется tbz2-архив, т. е. бинарники, при отсутствии их, сборка прекратится.

man emerge написал:

--usepkgonly (-K)
              Tells  emerge to only use binary packages (from $PKGDIR).  All the binary packages must be available at the time
              of dependency calculation or emerge will simply abort.  Portage does not use $PORTDIR  when  calculating  depen-
              dency information so all masking information is ignored.

—

Я ♥ Gentoo & Funtoo