Tuesday, September 1, 2026

SGI IRIX'te Ağ, DNS, tcsh ve Nekoware Kurulumu

SGI sistemini uzun süredir yerel ağda kullanıyordum ama IRIX tarafındaki ağ ayarları yarım yamalak durumdaydı. Makine yönlendiriciye ping atabiliyor, doğrudan IP adreslerine ulaşabiliyor; buna rağmen alan adlarını çözemiyordu. Üstelik normal kullanıcı hesabında ping bile “Command not found” diyordu. Buradan başlayıp ağ, DNS, kabuk ayarları ve Nekoware paket kurulumunu tek seferde toparladım.

Bu yazı bir “şu üç komutu yaz, bitsin” tarifi değil. IRIX'in eski UNIX alışkanlıklarıyla modern ağın birbirine sürttüğü yerleri, yaptığım yanlış denemeleri ve çalışan son düzeni de içeriyor. Ekran fotoğraflarını özellikle sırayla bıraktım; komutların gerçek sistemdeki karşılığını takip etmek isteyen için küçük bir kurulum günlüğü oldu.

Ağ Arayüzü ve /etc/hosts

Önce root oldum ve ağ servisini, makine adını, arayüzü ve yönlendirme tablosunu kontrol ettim. Makineye 192.168.1.50 adresini verdim; varsayılan ağ geçidi 192.168.1.1. /etc/hosts içinde hem localhost hem de SGI'ın kendi adı doğru IP ile bulunmalı. Ben makine adını sgi-irix olarak kullandım.

su root
hostname
ifconfig -a
netstat -rn
cat /etc/hosts
/usr/etc/ping 192.168.1.1

IRIX'te bazı yönetim komutları /usr/etc altında. Root ortamında bulunan bir komut normal kullanıcıda PATH'e girmemiş olabiliyor. Bu yüzden “ping yok” sonucu ağ aracının kurulu olmadığı anlamına gelmiyor; önce /usr/etc/ping ile denemek gerekiyor.

İlk durum: ağ servisi ve DNS çözümleme hatası.
İlk durum: ağ servisi ve DNS çözümleme hatası.
/etc/hosts ve makine adı kontrolü.
/etc/hosts ve makine adı kontrolü.
Sistem ve ağ değişkenlerinin kontrolü.
Sistem ve ağ değişkenlerinin kontrolü.
/etc/hosts dosyasının düzenlenmesi.
/etc/hosts dosyasının düzenlenmesi.
ec0 arayüzü ve 192.168.1.50 adresi.
ec0 arayüzü ve 192.168.1.50 adresi.
192.168.1.1 ağ geçidine ping testi.
192.168.1.1 ağ geçidine ping testi.
/etc/nsswitch.conf içindeki çözümleme sırası.
/etc/nsswitch.conf içindeki çözümleme sırası.
DNS sunucuları ve doğrudan IP erişimi.
DNS sunucuları ve doğrudan IP erişimi.
IP çalışırken alan adı çözümlemesinin başarısız olması.
IP çalışırken alan adı çözümlemesinin başarısız olması.
nslookup çalışıyor; nsd önbelleği yeniden yükleniyor.
nslookup çalışıyor; nsd önbelleği yeniden yükleniyor.
nsd süreci ve yapılandırma dosyalarının kontrolü.
nsd süreci ve yapılandırma dosyalarının kontrolü.
nsd günlüğündeki domain/search path uyarısı.
nsd günlüğündeki domain/search path uyarısı.

IP Çalışıyor, DNS Çalışmıyor

Ağ geçidine ve 8.8.8.8 adresine ping başarılıydı. Yani Ethernet, IP adresi ve route tarafı çalışıyordu. Buna karşılık ping google.com hâlâ “Cannot resolve” hatası veriyordu. /etc/resolv.conf içine DNS sunucularını ekledim:

nameserver 8.8.8.8
nameserver 1.1.1.1

İlginç tarafı, nslookup google.com cevap veriyor ama normal uygulamalar alan adını çözemiyordu. IRIX isim çözümlemeyi doğrudan yalnızca resolv.conf üzerinden değil, nsd ve /etc/nsswitch.conf üzerinden yürütüyor. nsd günlüklerinde “no domain or search path in resolv.conf” uyarısını görünce dosyaya yerel ağ için bir arama alanı ekledim ve servisi yeniden yükledim.

search local
killall -HUP nsd
/etc/init.d/network stop
/etc/init.d/network start
/usr/etc/ping google.com

Buradaki local yalnızca ev ağı için kullandığım arama alanı. Kendi DNS alanınız varsa onu yazmanız gerekir. Bu düzeltmeden sonra hem IP hem alan adı çözümlemesi çalıştı.

PATH, Komut Geçmişi ve tcsh

Normal kullanıcı hesabında ping komutunun bulunmamasının nedeni PATH'ti. /usr/etc dizinini kullanıcı ortamına ekledim. Ardından her oturumda yukarı/aşağı oklarla komut geçmişini kullanabilmek için tcsh ayarlarını kalıcılaştırdım.

which tcsh
echo $SHELL
set path = ( /usr/etc $path )
set history = 100

Bu satırları kullanıcı hesabındaki ~/.cshrc dosyasına ekledim ve yeni oturum açmadan denemek için source ~/.cshrc çalıştırdım. Sonuçta ping doğrudan çağrılabildi, komut geçmişi çalıştı ve istemde makine adı görünür hâle geldi.

Kullanıcı kabuğunda ping komutunun PATH içinde bulunmaması.
Kullanıcı kabuğunda ping komutunun PATH içinde bulunmaması.
/usr/etc/ping komutunun doğrudan çalıştırılması.
/usr/etc/ping komutunun doğrudan çalıştırılması.
Ağ geçidine kullanıcı hesabından başarılı ping.
Ağ geçidine kullanıcı hesabından başarılı ping.
Ağ bağlantısının kararlı hâle gelmesi.
Ağ bağlantısının kararlı hâle gelmesi.
PATH değişkenine /usr/etc eklenmesi.
PATH değişkenine /usr/etc eklenmesi.
Kullanıcı .cshrc dosyasının incelenmesi.
Kullanıcı .cshrc dosyasının incelenmesi.
Komut geçmişi ve istem ayarlarının eklenmesi.
Komut geçmişi ve istem ayarlarının eklenmesi.
Yeni .cshrc ayarlarının source ile yüklenmesi.
Yeni .cshrc ayarlarının source ile yüklenmesi.
tcsh testi, tarih ve internet bağlantısının doğrulanması.
tcsh testi, tarih ve internet bağlantısının doğrulanması.

Türkçe Klavye Denemesi

Ağ işi bitince Türkçe klavye düzenine de baktım. IRIX'teki find, GNU find ile aynı seçeneklere sahip değil; örneğin -iname yok. X11 tuş eşlemelerini xmodmap -pke ile çıkardım, Türkçe karakter keysymlerini ve ISO-8859-9 fontlarını aradım.

xmodmap -pke
xlsfonts | grep iso8859-9
locale
locale -a
setenv LC_CTYPE tr

xmodmap ile tek tek keycode eşlemek mümkün görünse de sistemde xev bulunmadığı için fiziksel tuşları rahatça teşhis edemedim. Ayrıca locale ile klavye eşlemesi aynı şey değil: LC_CTYPE=tr Türkçe karakter sınıflandırmasını sağlıyor, tuşların hangi karakteri ürettiğini tek başına değiştirmiyor. Bu yüzden bu aşamada çalışan ağı bozacak kadar dosya kurcalamak yerine Türkçe klavyeyi ayrı bir işe bıraktım.

IRIX find ve chsh farklılıklarının görülmesi.
IRIX find ve chsh farklılıklarının görülmesi.
Varsayılan kabuğun /usr/bin/tcsh olarak doğrulanması.
Varsayılan kabuğun /usr/bin/tcsh olarak doğrulanması.
xmodmap ile mevcut tuş eşlemelerinin dökülmesi.
xmodmap ile mevcut tuş eşlemelerinin dökülmesi.
Harf tuşlarının keycode değerleri.
Harf tuşlarının keycode değerleri.
Noktalama ve işlev tuşlarının keycode değerleri.
Noktalama ve işlev tuşlarının keycode değerleri.
Yön ve sayısal tuş takımının eşlemeleri.
Yön ve sayısal tuş takımının eşlemeleri.
Üst keycode bölgesinin kontrolü.
Üst keycode bölgesinin kontrolü.
Türkçe karakter keysymlerinin aranması.
Türkçe karakter keysymlerinin aranması.
xmodmap ile geçici Türkçe karakter eşlemesi denemesi.
xmodmap ile geçici Türkçe karakter eşlemesi denemesi.
Eşleme denemesinin tekrar kontrolü.
Eşleme denemesinin tekrar kontrolü.
İlgili keycode satırının bulunması.
İlgili keycode satırının bulunması.
ISO-8859-9 destekli fontların listelenmesi.
ISO-8859-9 destekli fontların listelenmesi.
Geçerli LANG ve LC_* değerleri.
Geçerli LANG ve LC_* değerleri.
Sistemdeki Türkçe locale seçeneklerinin aranması.
Sistemdeki Türkçe locale seçeneklerinin aranması.
locale komutu ve kabuk sözdizimi denemeleri.
locale komutu ve kabuk sözdizimi denemeleri.
LC_CTYPE=tr denemesi.
LC_CTYPE=tr denemesi.
xev bulunmadığı için klavye teşhisinin burada bırakılması.
xev bulunmadığı için klavye teşhisinin burada bırakılması.

Nekoware ve wget Kurulumu

IRIX üzerinde wget ve curl kurulu değildi; fakat klasik FTP istemcisi vardı. IRIX Network'ün FTP sunucusuna anonymous olarak bağlanıp nekoware/current dizinine geçtim. Nekoware paketleri tardist biçiminde ve IRIX'in kendi inst aracıyla kuruluyor.

ftp ftp.irixnet.org
Name: anonymous
cd nekoware
cd current
binary
get neko_wget-1.11.3.tardist
quit

İlk denemede paketi yanlış dizinden açmaya çalıştığım için “No such file or directory”, salt okunur konuma yazmaya çalıştığım için de izin hataları aldım. inst içinde göreli dosya adıyla uğraşmak yerine tardist dosyalarının tam yolunu vermek en temiz çözüm oldu.

Donanım özeti ve wget/curl/ftp kontrolü.
Donanım özeti ve wget/curl/ftp kontrolü.
IRIX Network FTP sunucusuna bağlantı.
IRIX Network FTP sunucusuna bağlantı.
FTP dizinleri ve IRIX Network açıklaması.
FTP dizinleri ve IRIX Network açıklaması.
Nekoware paket arşivinin incelenmesi.
Nekoware paket arşivinin incelenmesi.
inst paket yöneticisinin ana menüsü.
inst paket yöneticisinin ana menüsü.
wget tardist paketinin ürün listesi.
wget tardist paketinin ürün listesi.
İlk kurulum denemesinde dağıtım kaydetme uyarısı.
İlk kurulum denemesinde dağıtım kaydetme uyarısı.
Salt okunur konum ve izin hatası.
Salt okunur konum ve izin hatası.
root posta bildirimi ve düzenlenen sistem dosyaları.
root posta bildirimi ve düzenlenen sistem dosyaları.
Ara kontrol ekranı.
Ara kontrol ekranı.
root .cshrc dosyasına kalıcı kabuk ayarları.
root .cshrc dosyasına kalıcı kabuk ayarları.
root oturumunda PATH ve kabuk kontrolü.
root oturumunda PATH ve kabuk kontrolü.
DISPLAY olmadığı için nedit'in açılamaması.
DISPLAY olmadığı için nedit'in açılamaması.
xmodmap denemesinin root oturumundaki sonucu.
xmodmap denemesinin root oturumundaki sonucu.

Bağımlılıklar ve inst

wget tek başına kurulmadı; kullandığım Nekoware paketinin gettext, libiconv ve OpenSSL bağımlılıkları vardı. Paketleri önce kullanıcı dizinine indirdim, ardından root olarak inst başlattım.

su root
cd /usr/people/kadir
inst

inst ana menüsünde her paketi tam yoluyla açtım:

open /usr/people/kadir/neko_libiconv-1.14.tardist
open /usr/people/kadir/neko_gettext-0.18.1.1.tardist
open /usr/people/kadir/neko_openssl-0.9.8x.tardist
open /usr/people/kadir/neko_wget-1.11.3.tardist
list
go

Paket adı veya sürümü FTP'deki dosyayla birebir aynı olmalı. Fotoğraflardaki bazı “file not found” ve tar hataları, adı ezberden yazdığım ya da eksik inmiş dosyayı açmaya çalıştığım denemelere ait. Son turda dosyaları ls -l ile doğrulayıp tam yolları kullanınca ürün açıklamaları düzgün okundu ve bağımlılıklar birlikte seçilebildi.

inst ile yerel tardist paketlerini açma.
inst ile yerel tardist paketlerini açma.
FTP'deki Nekoware current dizininde paket seçimi.
FTP'deki Nekoware current dizininde paket seçimi.
PASV önerisi ve gerekli bağımlılıkların indirilmesi.
PASV önerisi ve gerekli bağımlılıkların indirilmesi.
libiconv, OpenSSL ve wget paketlerinin hazırlanması.
libiconv, OpenSSL ve wget paketlerinin hazırlanması.
İndirilen tardist dosyalarının kullanıcı dizininde kontrolü.
İndirilen tardist dosyalarının kullanıcı dizininde kontrolü.
root oturumuna geçiş ve paket listesinin doğrulanması.
root oturumuna geçiş ve paket listesinin doğrulanması.
inst ana menüsüne dönüş.
inst ana menüsüne dönüş.
Kurulum ve kaldırma komutlarının özeti.
Kurulum ve kaldırma komutlarının özeti.
gettext paketi açılırken libiconv dosya adı hatası.
gettext paketi açılırken libiconv dosya adı hatası.
Dağıtımın /var/tmp altına açılması.
Dağıtımın /var/tmp altına açılması.
Paketlerin tam yol kullanılarak yeniden açılması.
Paketlerin tam yol kullanılarak yeniden açılması.
inst kurulum seçim ekranı.
inst kurulum seçim ekranı.
FTP sunucusunda nekoware/current dizinine geçiş.
FTP sunucusunda nekoware/current dizinine geçiş.
gettext paketinin binary modda indirilmesi.
gettext paketinin binary modda indirilmesi.
İndirilen paketlerle inst'in yeniden başlatılması.
İndirilen paketlerle inst'in yeniden başlatılması.
Bağımlılıkların hazırlanması.
Bağımlılıkların hazırlanması.
Eksik veya bozuk tardist denemesinin tespiti.
Eksik veya bozuk tardist denemesinin tespiti.
Yerel dizindeki paket dosyalarının kontrolü.
Yerel dizindeki paket dosyalarının kontrolü.
Paket adlarının ve sürümlerinin doğrulanması.
Paket adlarının ve sürümlerinin doğrulanması.
inst ile paketlerin tam yoldan açılması.
inst ile paketlerin tam yoldan açılması.
Kurulum seçimlerinin gözden geçirilmesi.
Kurulum seçimlerinin gözden geçirilmesi.
Paket açma ve bağımlılık çözümleme adımı.
Paket açma ve bağımlılık çözümleme adımı.
Eksik OpenSSL paketiyle ilgili hata.
Eksik OpenSSL paketiyle ilgili hata.
Nekoware paketlerinin masaüstünde kontrolü.
Nekoware paketlerinin masaüstünde kontrolü.
Kurulumun tam yollarla son kez tekrarlanması.
Kurulumun tam yollarla son kez tekrarlanması.
Netscape üzerinden yerel HTTP erişim testi.
Netscape üzerinden yerel HTTP erişim testi.
Nekoware current dizininin Netscape'te açılması.
Nekoware current dizininin Netscape'te açılması.
Paket listesinin tarayıcıdan görüntülenmesi.
Paket listesinin tarayıcıdan görüntülenmesi.

Sonuç

Son durumda SGI yerel ağda 192.168.1.50 adresiyle çalışıyor; ağ geçidine, internetteki IP adreslerine ve alan adlarına ulaşabiliyor. Normal kullanıcı ortamında /usr/etc PATH içinde, varsayılan kabuk tcsh ve komut geçmişi kalıcı. Nekoware paketlerini FTP ile indirip inst üzerinden kurabilecek bir temel de oluştu.

Bu işte en yanıltıcı nokta nslookup çalıştığı hâlde diğer programların DNS kullanamamasıydı. IRIX'te nsd, nsswitch.conf ve resolv.conf üçlüsünü birlikte düşünmek gerekiyor. İkinci tuzak da modern Linux alışkanlıkları: komut yolları, find seçenekleri, paket biçimi ve kurulum aracı farklı. Sistem bozuk değildi; yalnızca 1990'ların UNIX mantığıyla konuşmak gerekiyordu :)


SGI, IRIX, nsd, DNS, tcsh, Nekoware, tardist, inst, wget, IRIX Network.