Linux'ta tkdiff hatası Redhat 5.5


3

tkdiffKök olarak yükledim ve bu kullanıcının altında çalışıyor, ancak yerel bir kullanıcıya geçtiğimde hatayı alıyorum:

Uygulama başlatılamadı: Aşağıdaki dizinlerde kullanılabilir bir init.tcl bulunamıyor:
/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

Bu muhtemelen Tcl’nin doğru yüklenmediği anlamına gelir.

Başlatma komut dosyasında hata: "paket gerektiren Tk 8.0"
yürütülürken Tk 8.0 paketini bulamıyor (dosya "./tkdiff" satır 32)

Bunu nasıl düzeltebilirim?

Yanıtlar:


1

TCL / Tk kurulumu nereden geldi? Synopsys, özellikle Vera yazılımlarıyla birlikte geliyor gibi görünüyor. Gerçekten TCL / Tk versiyonlarını tkdiff ile kullanmak mı istiyorsunuz?

Bu bana bir $PATHsorun gibi görünüyor . Kullanmak için oluşturulmuş doğru kurulumu almıyorsunuz tkdiff, Synopsys tarafından sağlananları kullanıyorsunuz.

tkdiff paketleme

CentOS 5.8'deyim ve sağlayan depolardan temin edilebilecek aşağıdaki pakete sahibim tkdiff.

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

Çalıştırılabilir olduğundan, tkdiffbu komutu kullanarak bu paketin bir parçası olduğundan emin olabilirsiniz :

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

Bu paket aşağıdaki diğer paketlere bağlıdır:

$ 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

Onaylamak

Synopsys yazılımını geçici olarak kaldırarak $PATHve ardından tkdiffSynopsys referansları olmadan başlatmaya çalışarak hipotezimi test edebilirsiniz.

$ PATH değişkenini aşağıdaki yollardan hiçbirini içermeden basitçe ayarlayın:

  • /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

Ayrıca, $TCLya da $TCL*değişkenlerin bu dizinlere referans vermediğinden emin olun .

UserA için değil userB için çalışır, nasıl hata ayıklanır?

Bunun userA için çalıştığı durumla karşılaşıyorsanız, ancak userB için değil, o zaman büyük olasılıkla bir ortam konfigürasyon problemidir. Bu hata ayıklamak için aşağıdakileri yaparım:

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

Sonra diffneyin farklı olduğunu görmek için 2 dosya:

$ 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
...

Soldaki girişler userA'dan ve sağdaki girişler userB'den olacak.


Xlib: sunucu tarafından reddedilen "ospvnc01: 22.0" ile bağlantı Xlib: protokol belirtilmedi Uygulama başlatılamadı: "ospvnc01: 22" gösterilemedi "başlatma betiğinde hata: yürütülürken Tk 8.0 paketi bulunamıyor" paketi gerekli Tk 8.0 "(file" ./tkdiff "line 32) Şimdi bu hatayı alıyorum
user45898 11

@ user45898 - bu hatayı ne zaman alıyorsunuz? Çağırırken tkdiff? Bu, $ DISPLAY'inizin doğru şekilde ayarlanmamasıyla ilgili bir sorundur. Eğer makine üzerinde oturan ediyorsanız o kadar gibi ayarlanmış olduğundan emin olun: export DISPLAY=:0.0.
slm

Bundan sonra EKRAN'ı ayarladığımda, "Uygulama başlatma başarısız oldu ..." da belirttiğim aynı hatayı alıyorum. Eğer cevabınıza göre hepsini kontrol ettim ve PATH'i de ayarladım. kullanıcı Env. Sorun, çünkü DISPLAY'i ayarlayabilir ve tkdiff'i kullanabilir, ikimiz de aynı ekibiz. Böyle ise nasıl ben .Ben yardım lütfen me.and TEŞEKKÜRLER benim sorguları için yanıtını verdiği için .. bu alanda yeni am kontrol edebilirsiniz
user45898

@ user45898 - bir kullanıcı env. Tamam çalışıyor ve bir başkası değil, o zaman ikisini de 2 dosyaya atmayı ve sonra da dosyaları dağıtmayı öneririm. Bunun nasıl yapılacağı ile ilgili cevabınıza bir bölüm ekleyeceğim.
slm

@ user45898 - güncellemeleri görün.
slm

0

Bu tür problemleri anlamanın en kestirme yolu strace, root olarak çalıştırıldığında programa gitmek, kullanıcı olarak bulmakta zorlandığınız dosyayı bulmak (sizin durumunuzda init.tcl) ve dosya sisteminin bu kısmını sadece normal kullanıcılar tarafından kullanılamaz kılmaktır. kök yoluyla chmod.


Merhaba strace "paket Tk 8.0" (dosya "/ usr / local / bin / tkdiff" satır 32) gerektirir) = 113 yazma (2, "\ n", 1) = 1 fcntl64 (2, F_GETFL) = 0x8002 ( bayraklar 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) =? Ben herhangi bir tavsiye ve bir çözüm sağlayabilir
yeniyim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.