Mam plik ~ / .cshrc, który pozyskuje inny plik, który powinien uzyskać dodatkowy plik, ale go nie ma

0

Niedawno odziedziczyłem rolę administracyjną w moim laboratorium i wciąż jestem w tym całkiem nowy ... więc mam nadzieję, że to pytanie ma sens. Nasz system jest skonfigurowany w taki sposób, że jeden serwer obsługuje katalogi danych / użytkowników, jeden ma oprogramowanie i aplikacje, a trzy systemy są używane jako działające komputery z zamontowanymi innymi serwerami. Po utworzeniu nowego użytkownika generowany jest plik ~ / .cshrc, który pozyskuje nadrzędny plik .cshrc na serwerze oprogramowania. Ten plik nadrzędny zawiera wszystkie ustawienia ścieżki i zmienne itp. Niezbędne do uzyskania dostępu do różnych programów, które instalujemy na zamontowanym serwerze oprogramowania. To totalny bałagan ... ale cóż.

Jeden z używanych przez nas programów musi przed uruchomieniem pobrać inny plik, aby poprawnie ustawić środowisko i załadować prawidłowe katalogi. Z jakiegoś powodu ta instancja źródłowa nie działa już po otwarciu okna terminala. Oto, co znalazłem:

  • Próbuję uruchomić program z wiersza polecenia i rozpoznaje on polecenie nadrzędne .cshrc, próbuje załadować, ale szuka w katalogu / usr / local na komputerze, a nie w katalogu na serwerze oprogramowania (uważam, że jest to oprogramowanie akcja domyślna).

  • Jeśli uruchomię source ~ / .cshrc w terminalu, nic się nie zmieni. Jednak jeśli źródłowy nadrzędny plik .cshrc pozyskuję z terminala, a następnie spróbuję załadować program, nie otworzy się to bez problemu.

  • Wiem, że ~ / .cshrc prawidłowo pozyskuje nadrzędny plik .cshrc, ponieważ umieściłem echo testowe w tym pliku i widzę to po otwarciu okna terminala. Wygląda na to, że polecenie źródłowe w źródłowym pliku źródłowym się nie dzieje.

Czy to ma sens? Czy dzieje się zbyt wiele warstw pozyskiwania lub coś takiego? Nie mam pojęcia, dlaczego tak się dzieje. Oto kod w nadrzędnym pliku .cshrc, który nie wypełnia poprawnie:

set hname = `hostname`

##############
####
#### ccp4i
####
##############
switch ($hname)
    case phase15.XXX.edu:
         source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/bin/ccp4.setup-csh
         source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/setup-scripts/ccp4.setup-csh
         echo "ccp4i sourced" #(THIS SHOWS UP)
         breaksw
    default:
         echo "CCP4 env setting?"
         breaksw
endsw
##############

Zmiana polega na tym, że różne komputery muszą ładować różne wersje oprogramowania. Z góry dziękuję.

beowulfey
źródło

Odpowiedzi:

0

Właśnie dla celów nagrywania odkryłem problem; w pewnym sensie z perspektywy czasu. Plik ~. / Cshrc użytkowników zawierał osobne polecenie źródłowe, które popsuło wszystko po uzyskaniu pliku nadrzędnego. Wydaje mi się, że jest to lekcja, aby zawsze uważnie przeczytać wszystko ...

beowulfey
źródło