26 Kasım 2005

X yönlendirme

Birden fazla makina üzerinden ssh bağlantısı açarak bağlanabildiğim bir makinada X uygulamalarını çalıştırıp görüntüyü evdeki kendi makinama almaya çalıştım, tünellerle denedim olmadı. Aradaki makinalardan birinde X11Forwarding kapalı olduğu için "ssh -X" ile de bağlanamadım.

ADSL modemden 6000 numaralı portu kendi bilgisayarıma yönlendirip DISPLAY değişkenini ip adresime ayarladım yine de "can't open display" hatası aldım. Biraz [[ bayağı :) ]] bir yerlerde debelendikten sonra gördüm ki, dağıtımları hazırlayanlar güvenliğimizi düşünüp X sunucunun tcp bağlantılarını dinlememesini sağlamışlar. Bu kapatma işi, X sunucuya "-nolisten tcp" seçeneğini vererek yapılıyor, bunu kaldırmak lazım. Ancak kullandığınız X yöneticisine göre de ayarın yeri değişiyor [[ dağıtıma göre de bu dosyaların yeri değişiyor üstelik :) ]]. Benzer bir durumla karşılaşırsanız diye bulduğum yerleri yazayım.

Normalde sadece startx ile çalıştırıyorsanız X'i /usr/X11R6/bin/startx
defaultserverargs=
GDM için /etc/gdm/gdm.conf [ Debian ]
DisallowTCP=true
Bundan sonra da /etc/X11/xinit/xserverrc dosyasina da bakmak gerekiyor sanırım [[ Teşekkürler Mehmet Mersin :) ]]
exec /usr/bin/X11/X -dpi 100 -nolisten tcp
KDE'cileri tebrik etmek lazım ayar dosyalarını bu kadar derinlere saklayabildikleri için.
/usr/kde/3.X/share/config/kdm/kdmrc [gentoo]
Suse'de /opt/kde altında bir yerde...
ServerArgsLocal=

24 Kasım 2005

Derleyici meseleleri

Şimdi hatırlayalım C++ kodunu "gcc" ile derlemeye çalıştığımızda neler oluyor? Eveeeeet linker bir sürü hata veriyor, çünkü gerekli kütühanelere ulaşamıyor, C++ kodunu derlemek için "g++" kullanmalısın. Peki buna dayanarak, Fortran kodunu "gcc" ile derleyip çalışabileceğini beklemek ne derece mantıklıdır.

Olan bu; arkadaşımın tezinde kullanacağı bir programı derlerken Fortran derleyicisi olarak gcc'yi gösterip, sonra kara kara düşündüm "undefined reference to MAIN" ne ola ki diye. Unutmayın Fortran derliyorsanız "g77" :)

gcc ve g++ paketleri ayrı olduğu gibi, g77 paketi de ayrı. gcc'nin kurulu olduğuna bakıp GCC: GNU Compiler Collection demek, bu da fortran derleyicisiyle geldiğini gösterir diye düşünmek de yanlış. Eğer paket kuruyorsanız GCC: GNU C Compiler :)

[[ Ayrıca zoom ADSL modemlerde port yönlendirdikten sonra modemi kapatıp açmaya gerek yokmuş, bu da güzel bir özellik tabii ]]

Güncelleme 29 Kasım 2005: Aynı şekilde, Fortran kodu birbirini kullanan dosyalardan oluşuyorsa; her dosya kendine lazım olan diğer dosyaların nerede olduğu bilinerek derlenmeli. Yoksa .o dosyasının bulunamıyor olması gayet doğal :) O kadar kod yazan adamların programı her yerde derlenebilir halde sunmasını beklemek yanlış olur herhalde. Nereden bilsinler gcc'nin -I diye bir seçeneği olduğunu... :) Amcalar sağlam makinalarda çalışıyorlar sanırım, ayar dosyalarında belirttikleri sistemleri ve dereyicileri duymamıştım bile.

22 Kasım 2005

Ubuntu'yu CD iso dosyası ile güncellemek

Kurulu bir ubuntu dağıtımına, ve bir sonraki sürümün iso dosyasına sahipsiniz. Sisteminizi güncellemek istiyorsunuz, normalde iso dosyasını bir CD'ye yazdıktan sonra synaptic'ten "Edit->Add CD-ROM..." ile CD'yi paket deposu olarak gösterip sistemi oradan güncelleyebilirsiniz. Ama tek seferlik bu işlem için bir CD yazmak istemiyorsunuz, o zaman da synaptic işinizi görmüyor. O halde benim yaptıklarımdan faydalanabilirsiniz...

Bu işleri komut satırından ve "root" yetkileriyle yapıyoruz. Bir uçbirim(terminal) açın ve "sudo -s" komutunu verip şifrenizi girerek root haklarını alın.

Önce, "loopback" dosya sistemi desteğini çekirdeğimize ekliyoruz. ve de bir sonraki aşamada kullanacağımız dizini oluşturuyoruz.
modprobe loop
mkdir /mnt/ubuntu-cd
Daha sonra iso dosyamıza erişimi kolaylaştırmak için /etc/fstab dosyamiza şuna benzeyen bir satır ekleyelim. [[en sevdiğiniz metin düzenleyiciyi kullanarak ;) ancak nano kullaniyorsaniz "nano -w" ile calistirin ki tek satir halinde kalsin ]] "/xxx/ubuntu.iso" yerine ubuntu iso dosyanızı nereye koyduysanız onu yazmanız yeterli olacaktır. aralardaki boşluklara dokunmayın ve tek satir halinde yazin.
/xxx/ubuntu.iso /mnt/ubuntu-cd iso9660 ro,loop,noauto 0 0
Sonra iso dosyamızı bu dizine bağlayalım
mount /mnt/ubuntu-cd
Artık ubuntu iso dosyasının içeriğine /mnt/ubuntu-cd dizininden erişebiliriz kolayca. apt-cdrom ile, iso dosyamızı yeni bir paket deposu olarak tanıtıyoruz.
apt-cdrom -d=/mnt/ubuntu-cd add
Şimdi synaptic'i açıp "Settings->Repositories" ekranından CD'nin eklendiğini görebilirsiniz. Orada CD dışındaki tüm paket depolarını yanlarındaki kutucukları temizleyerek iptal edin, ya da sağdaki düğme aracılığıyla silin. Bu önemli, çünkü varolan depolardaki paketler eski sürüm, ama synaptic onları kullanmaya çalışıyor ısrarla.

Bu işleri bitirdikten sonra paket veritabanını güncellediğinizde (ctrl+R) sadece yeni ubuntu sürümünün paketleri kurulabilir olur. Sistemi güncellemeye çalıştığınızda (ctrl+G) size ne tarz bir güncelleme istediğiniz sorulacak. "Smart Upgrade" dediğinizde ve değişiklikleri onayladığınızda, sisteminiz bir sonraki ubuntu sürümüne güncellenecek. Ancak dikkat edin ve size sunulan değişiklik listesini gözden geçirin, bir sorun varsa iptal deyip yapılacak değişikliklere müdahale edin.

Yaklaşık bir saat kadar süren güncellemenin sonunda bilgisayarınızı yeniden başlattığınızda yepyeni gıcır gıcır ubuntu sisteminize giriş yapabileceksiniz :) Aslında bilgisayarı yeniden başlatmak zorunda değilsiniz, ama 5.4'ten 5.10'a güncellediyseniz bilgisayarınızı yeniden başlattığınızda siyah beyaz yazılar yerine daha güzel bir ekran göreceksiniz.

Ubuntu ile kalın ;)