LinuxForum.Fans
Тема

XFCE 4.8

Автор: Coldead 62 сообщений 16558 просмотров
#134931
sun написал:
порядок установки имеет значение, т.к. одни вновьустанавливаемые пакеты в зависимости от других, и без удовлетворения зависимостей мы получим ошибку вместо установленного пакета, убедился в этом лично.

Можно пример ошибки?

Установка бинарных пакетов лежит на плечах pkgtools, а именно installpkg или upgradepkg (а в конечном итоге tar). После собственно распаковки пакета, как уже было сказано выше, выполняется install/doinst.sh.
До тех пор, пока doinst.sh не затрагивает того, чего нет внутри пакета, такой пакет может быть поставлен независимо от других (даже если его файлам для работы (не для установки) требуется ещё что-то). Если внутри doinst.sh есть ссылки на что-то, не входящее в пакет, да, это что-то должно быть обязательно установлено ранее, и зависимость от порядка установки появится.

Повторюсь, если для приведённого примера с xfce-4.8 я просмотрел подобную зависимость между пакетами, прошу на такую зависимость указать. В противном случае, продолжаю настаивать на отсутствии зависимости от порядка установки для этого набора.

#134945

В тех doinst.sh, что генерирует на автомате makepkg, ссылок на отсутствующее в пакете не бывает. Кастомные doinst.sh из набора:
[console]$ cd /tmp/xfce-4.8/
$ for f in $(find source/ -name doinst.sh.gz) ; do echo "=== $f" >> /tmp/txt ; zcat $f >> /tmp/txt ; done
[/console]

Показать
text
=== source/xfce4-mixer/doinst.sh.gz
if [ -x /usr/bin/update-desktop-database ]; then
  /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

if [ -x /usr/bin/update-mime-database ]; then /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 fi fi

=== source/xfce4-power-manager/doinst.sh.gz if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 fi fi

=== source/deps/avahi/doinst.sh.gz config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... }

# Keep same perms on rc.avahidaemon.new: if [ -e etc/rc.d/rc.avahidaemon ]; then cp -a etc/rc.d/rc.avahidaemon etc/rc.d/rc.avahidaemon.new.incoming cat etc/rc.d/rc.avahidaemon.new > etc/rc.d/rc.avahidaemon.new.incoming mv etc/rc.d/rc.avahidaemon.new.incoming etc/rc.d/rc.avahidaemon.new fi

# Keep same perms on rc.avahidnsconfd.new: if [ -e etc/rc.d/rc.avahidnsconfd ]; then cp -a etc/rc.d/rc.avahidnsconfd etc/rc.d/rc.avahidnsconfd.new.incoming cat etc/rc.d/rc.avahidnsconfd.new > etc/rc.d/rc.avahidnsconfd.new.incoming mv etc/rc.d/rc.avahidnsconfd.new.incoming etc/rc.d/rc.avahidnsconfd.new fi

config etc/rc.d/rc.avahidaemon.new config etc/rc.d/rc.avahidnsconfd.new config etc/avahi/avahi-daemon.conf.new config etc/dbus-1/system.d/avahi-dbus.conf.new

if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 fi

# Reload messagebus service if [ -x etc/rc.d/rc.messagebus ]; then chroot . /etc/rc.d/rc.messagebus reload fi

=== source/deps/upower/doinst.sh.gz config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... }

config etc/UPower/UPower.conf.new

=== source/deps/gnome-disk-utility/doinst.sh.gz config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... }

if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 fi fi

=== source/deps/gvfs/doinst.sh.gz config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... }

# Reload the dbus configuration just in case chroot . /etc/rc.d/rc.messagebus reload

=== source/deps/GConf/doinst.sh.gz config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... }

config etc/gconf/2/path.new config etc/gconf/2/evoldap.conf.new

=== source/deps/gnome-keyring/doinst.sh.gz chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/

=== source/xfce4-notifyd/doinst.sh.gz if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications 2>/dev/null fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 fi fi

#134979
bormant написал:
В тех doinst.sh, что генерирует на автомате makepkg, ссылок на отсутствующее в пакете не бывает. Кастомные doinst.sh из набора:
[console]$ cd /tmp/xfce-4.8/
$ for f in $(find source/ -name doinst.sh.gz) ; do echo "=== $f" >> /tmp/txt ; zcat $f >> /tmp/txt ; done
[/console]

gnome-keyring-2.32.1-i486-2_rlw.txz

text
( cd usr/lib ; rm -rf libgcr.so )
( cd usr/lib ; ln -sf libgcr.so.0.0.0 libgcr.so )
( cd usr/lib ; rm -rf libgp11.so )
( cd usr/lib ; ln -sf libgp11.so.0.0.0 libgp11.so )
( cd usr/lib ; rm -rf libgcr.so.0 )
( cd usr/lib ; ln -sf libgcr.so.0.0.0 libgcr.so.0 )
( cd usr/lib ; rm -rf libgp11.so.0 )
( cd usr/lib ; ln -sf libgp11.so.0.0.0 libgp11.so.0 )

chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/

в депе вот единственный зависимый пакет , сперва нужен новый glib-2.0 , а так да в данном примере (XfCE) роли не имеет . ... однако (!) наличие глюков у группы товарищей говорит что не всё гладко с зависимостями .

#135037

Не соглашусь в части "зависимый при установке", и вот почему.

Упомянутые libgcr.so.0.0.0 и libgp11.so.0.0.0 входят в состав пакета gnome-keyring, то есть в части пересоздания символических ссылок (rm -rf ... ; ln -sf ...) всё отработает без замечаний.

/usr/bin/glib-compile-schemas входит в пакет glib2, который должен быть установлен, чтобы отработал
glib-compile-schemas при установке.
Но, с другой стороны, без glib2 это счастье вообще не сможет работать, придётся поставить glib2, а это повлечёт выполнение его doinst.sh. Смотрим less /var/log/scripts/glib2-* и последней строчкой видим:
[console]chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ 1> /dev/null 2> /dev/null[/console]

То есть, зависимость от порядка установки в данном случае всё равно отсутствует. wink

gramozeka, консенсус?

#135038

так, сейчас будем пробывать...

#135071

Спасибо всем!
Со скриптом bormant, у меня все поставилось, единственное, запускалось только из под рута.
Но useradd, userdel решили проблему.

#135073

Рано радуюсь.
Терминал не запускается.
Хотя даже знаю почему...

#135103
Coldead написал:
Рано радуюсь.
Терминал не запускается.
Хотя даже знаю почему...

терминал не запустится , нужно руками указать путь к самому бинарнику терминала (поправь в настройках - лаунчер эховский выкинь), это эхо криво настроено изначально ...

#135505

Вызвал на прямую, пишет:

terminal: symbol lookup error: terminal: undefined symbol: vte_terminal_fork_command_full
#135517

возможно поломался или не установлен пакет vte-0.26.2-i486-1.txz , попробуете переустановить его , а потом переустановить пакет терминала из нового XfCE .

P.S. ... я лично пользуюсь roxterm

#135542
gramozeka написал:
возможно поломался или не установлен пакет vte-0.26.2-i486-1.txz , попробуете переустановить его , а потом переустановить пакет терминала из нового XfCE .

P.S. ... я лично пользуюсь roxterm

Сейчас посмотрю что с vte, а так, xfce-terminal один из лучших терминалов.

#135577

у мну заработал как часы после установки vte ...

#135585

У меня не работает, ставил из current - там что про libvte.so.6 говорило, а из 13.1 - также...

#135589

если спросить SBo об libvte.so.6 он вам выдаст roxterm , установите его и попробуйте ... хотя каждый сам себе <сами_знаете_хто> :D

#135590

Сейчас попробую...

#135595

Собрал, что первый, что второй ругаются... :(
libvte.so.9: ..widget..

#135597

А в current тоже 4.6?
Может на current попробывать установить...

#135601

Угу, я так понимаю, что vte_terminal_fork_command_full() введена начиная с vte-0.25.1.
Стало быть, можно из -current пересобрать:

text
# mkdir ~/bld ; cd ~/bld
# wget -r -nH --cut-dirs=5 ftp://ftp.osuosl.org/pub/slackware/slackware-current/source/l/vte
# cd vte ; ./*.SlackBuild
# rm -rf /tmp/vte-0.26.2 /tmp/package-vte
# upgradepkg /tmp/vte-0.26.2*.txz
#135604


Debian GNU/Linux 6.0.0: KDE 4.4.5, Kernel 2.6.37-2.slh.3-aptosid-686
FreeBSD 8.2: OpenBox + Tint2
Slackware 13.1: Xfce 4.6.1

? от оно чё ... вопрос на засыпку у вас система на данный момент 13.1 или -current ?

#135638

Всё получилось. Итого пришлось пересобрать в 13.1 из -current из серии l: glib2, gdk-pixbuf2, gtk+2, vte.

ps. exo-open из вызова терминала удалять не потребовалось.

Войдите или зарегистрируйтесь, чтобы ответить.