ошибка tkdiff на Linux Redhat 5.5

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

mount / -o remount,rw

Хотя, так как Вы используете Ubuntu, компилируя ядро, должно быть намного более простым, чем это. Если Вы уже не используете его, я рекомендую использовать kernel-package скомпилировать ядро. Просто получите пакет и источники ядра, распакуйте и скажите что-то как

make-kpkg -j3 --initrd binary

Это затем создаст .deb пакеты, которые можно установить обычный путь (dpkg -i SOME-FILE.deb)

3
20.05.2017, 13:53
2 ответа

Куда установка TCL/Tk прибывала из? Похоже, что это связывается Synopsys, особенно их программное обеспечение Vera. Вы действительно означаете использовать их версию TCL/Tk с tkdiff?

Это смотрит на меня, чтобы быть a $PATH проблема. Вы не берете корректную установку это tkdiff был создан для использования, Вы используете тот, обеспеченный Synopsys.

упаковка tkdiff

Я нахожусь на CentOS 5.8, и у меня есть следующий пакет, это доступно из репозиториев, который обеспечивает tkdiff.

$ yum search tkdiff
Loaded plugins: fastestmirror
========================================================= Matched: tkdiff ==========================================================
tkcvs.noarch : Graphical interface to the CVS and Subversion

Можно удостовериться что исполняемый файл, tkdiff на самом деле часть этого пакета с помощью этой команды:

$ repoquery -l tkcvs |  grep tkdiff
/usr/bin/tkdiff

Этот пакет зависит от следующих других пакетов:

$ yum deplist tkcvs
Loaded plugins: fastestmirror
Finding dependencies: 
package: tkcvs.noarch 8.2.2-1.el5.rf
  dependency: /usr/bin/env
   provider: coreutils.x86_64 5.97-34.el5_8.1
  dependency: /bin/sh
   provider: bash.x86_64 3.2-32.el5
   provider: bash.x86_64 3.2-32.el5_9.1
  dependency: tcl
   provider: tcl.x86_64 8.4.13-6.el5
   provider: tcl.i386 8.4.13-6.el5
  dependency: tk
   provider: tk.x86_64 8.4.13-5.el5_1.1
   provider: tk.i386 8.4.13-5.el5_1.1

Подтвердить

Вы могли проверить мою гипотезу путем временного удаления программного обеспечения Synopsys из Вашего $PATH, и затем попытка запуститься tkdiff без ссылок на Synopsys.

Просто установите переменную $PATH без включения любого из этих путей:

  • /usr/local/lib/tcl8.0
  • /pune/tools/synopsys/vera/2009.12-6/vera_vD-2009.12-6_linux/lib/tcl8.0
  • /pune/tools/synopsys/vera/2009.12-6/tcl8.0/library
  • /pune/tools/synopsys/vera/2009.12-6/vera_vD-2009.12-6_linux/library

Также удостоверьтесь это $TCL или $TCL* переменные типа не ссылаются на эти каталоги также.

Работы для Усера не для userB, как отладить?

При случайной встрече с ситуацией, где это работает на Усера, но не на userB затем это наиболее вероятно проблема настройки среды. Для отладки этого, я сделал бы следующее:

[userA]$ env > userA_env.txt
[userB]$ env > userB_env.txt

Затем diff эти 2 файла для наблюдения, что отличается:

$ diff -y userA_env.txt userB_env.txt | less
rvm_gemsets_path=/home/saml/.rvm/gemsets                        rvm_gemsets_path=/home/saml/.rvm/gemsets
MANPATH=/home/saml/apps/perl5/perlbrew/perls/perl-5.14.0/man:   MANPATH=/home/saml/apps/perl5/perlbrew/perls/perl-5.14.0/man:
ORBIT_SOCKETDIR=/tmp/orbit-saml                                 ORBIT_SOCKETDIR=/tmp/orbit-saml
rvm_scripts_path=/home/saml/.rvm/scripts                        rvm_scripts_path=/home/saml/.rvm/scripts
PERLBREW_VERSION=0.59                                           PERLBREW_VERSION=0.59
HOSTNAME=grinchy                                                HOSTNAME=grinchy
rvm_bin_path=/home/saml/.rvm/bin                                rvm_bin_path=/home/saml/.rvm/bin
IMSETTINGS_INTEGRATE_DESKTOP=yes                                IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/tmp/keyring-Xewu2I/gpg:0:1                      GPG_AGENT_INFO=/tmp/keyring-Xewu2I/gpg:0:1
PERLBREW_PERL=perl-5.14.0                                       PERLBREW_PERL=perl-5.14.0
...

Записи слева будут из Усера, и записи справа будут от userB.

1
27.01.2020, 21:32
  • 1
    Xlib: соединение с "ospvnc01:22.0", которому отказывает сервер Xlib: Никакой протокол не указал отказавшую Инициализацию приложения: не мог подключить к дисплею "ospvnc01:22" Ошибку в сценарии запуска: не может найти пакет Tk 8.0, в то время как выполнение "пакета требует Tk 8.0", (файл "./tkdiff" строка 32) Теперь я получаю эту ошибку –  user45898 27.08.2013, 14:08
  • 2
    @user45898 - когда Вы получаете эту ошибку? При вызове tkdiff? Это - проблема с Вашим $DISPLAY, не устанавливаемым правильно. Если Вы сидите на машине, удостоверяются, что она установлена как так: export DISPLAY=:0.0. –  slm♦ 27.08.2013, 16:54
  • 3
    Когда я установил ДИСПЛЕЙ после этого, если выполняю tkdiff получение той же ошибки, которая я упомянул сначала "Инициализацию приложения, отказавшую...".As на Ваш ответ, я проверил все и установил ПУТЬ также. Один из моих colligue сказал, что это будет пользовательская проблема ENV, потому что он может установить ДИСПЛЕЙ и способный использовать tkdiff, даже мы - та же команда. Если это похоже на это, как я могу проверить, что.I в новинку для этого поля, помогите me.and СПАСИБО ЗА предоставление ответа для моих запросов.. –  user45898 28.08.2013, 20:07
  • 4
    @user45898 - если бы ENV одного пользователя работает хорошо и чей-либо, не, то я предложил бы выйти и в 2 файла и затем diffing файлы. Я добавлю раздел в ответе о том, как сделать это вскоре. –  slm♦ 29.08.2013, 03:16
  • 5
    @user45898 - посмотрите обновления. А-ч –  slm♦ 29.08.2013, 03:24

Общий ярлык на выяснение таких проблем к strace программа, когда выполнено как корень, grep для файла, который Вы испытываете затруднения при нахождении как пользователь (в случае init.tcl) и сделайте ту часть файловой системы применимой обычными пользователями и не только корнем через chmod.

0
27.01.2020, 21:32
  • 1
    Привет я работаю, strace "пакет требуют Tk 8.0" (файл "/usr/local/bin/tkdiff" строка 32)) = 113 записей (2, "\n", 1) = 1 fcntl64 (2, F_GETFL) = 0x8002 (отмечает O_RDWR|O_LARGEFILE) fcntl64 (2, F_SETFL, O_RDWR|O_LARGEFILE) = 0 fcntl64 (2, F_GETFL) = 0x8002 (отмечает O_RDWR|O_LARGEFILE), exit_group (1) =? Я - новая банка любой совет и обеспечиваю, Просмотр решения –  user45898 26.08.2013, 19:15

Теги

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