C#nedir?com
 
YAZAR HAKKINDA
Ahmet İpek
Ahmet İpek
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
9 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: ardindan asp.net fedora gerekli isletim kurulum kurulumu partion servis terminal virtual vmware windows xsp?yi zamanda Mono ve .NET Ahmet İpek
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : Mono ve .NET
Yayınlanma Tarihi : 18.10.2004
Okunma Sayısı : 27092
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Burak Selim Şenyurt
Asp.Net Core'da Bir WebSocket Macerası 21.10.2017
Burak Selim Şenyurt
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 21.10.2017
Turhal Temizer 'in Blogu
ChatBot UI Sample 21.10.2017
Turhal Temizer 'in Blogu
C# – IRR Function 21.10.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Mono ve Sanal Makinalar
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu yazının amacı Mono kelimesini bir çok kez duymuş ve merak etmiş fakat işletim sistemine zarar vermekten çekinip Linux kurmak istemeyen kişilere sanal makinaları duyurmak ve sizi Linux ortamına alıştırmak.

C#nedir?com ’da karşılaşacağınız bir çok örneği deneme olanağı elde ediceğiniz sanal bir işletim sistemi kurma imkanı sağlayan sanal makinaların belli başlı örneklerini denedim. Ama ilk önce nedir bu sanal makinalar onu açıklayayim: Sanal makinalar kullandığınız işletim sisteminize bir program yükleyerek yarattığınız sanal bir donanım ortamıdır. Bu ortama istediğiniz 2. veya 3. bir işletim sistemi yükleyebilirsiniz ve bu sistemleri ana işletim sistemi üzerinden kullanabilirsiniz. Buda Windows’da bir pencere içerisinde Linux kullanmanız anlamına gelmektedir. Sanal Makina uygulamalarının belli başlı örnekleri aşağıdaki gibidir.

1. Microsoft Virtual Server 2005
2. Microsoft Virtual PC 2004
3. VMware



Denemelerim süresinde inceleme sırasıda yukarıdaki gibiydi. Microsoft ürünü olan Virtual Server 2005 ve Virtual PC 2004 üzerine ne yazık ki Fedora Core 2 kurulumu direkt olarak gerçekleştirilemiyor. Gerçi Linux’ı text olarak kurduktan sonra çekirdeğinin konfigrasyonu değiştirilerek bunu gerçekleştirmek mümkün fakat bu giriş düzeyi kullanıcıları hitap etmediğinden Fedora’yı destekleyen VMware’i nasıl kuracağımızı anlatıcam.

VMware’i http://www.vmware.com/download/workstation.html adresinden indirebilir ve 30 günlük deneme sürümü için gene aynı adresden kayıt olarak geçerli bir anahtar edinebilirsiniz. Açıkcası 36.2MB dosyayı indirmek kurulumun en zor ve uzun kısmı :) ardından Next butonları ile VMware Workstation’ı kısa sürede kurabilirsiniz.    Yandaki simge’nin masaüstünde belirdiğini görüceksiniz. VMware’i açtıktan sonra yeni bir sanal makina yaratarak hemen Linux kurlumuna başlayabiliriz. Bunu programı açtıktan sonra karşımıza gelen ekranda "Create New Virtual Machine" menusü ile yapabiliriz.

Virtual Machine Configration : Typical
Guest Operating System: Linux , Red Hat Linux (Fedora bir Red Hat ürünüdür)
Virtual Machine Name: Red Hat Linux (istediğiniz ismi verebilirsiniz)
Location: ... (Bu bölümü sanal makinanızın hangi klasörde tutmak isteğinize göre değiştirin. PS: En az 3GB yeriniz olmalı)
Network Connection: Use Bridged Networking (Bu şekilde sanal makina üzerinde internete çıkabilirsiniz)
Disc Capacity: ... (Tanımlı olarak 4GB gelmektedir. Siz sanal makinaya yükleme yapmadıkça bu alanı kullanmaz fakat üstüne çıkamazsınız PS: Allocate Now seçeneğini seçerseniz bu sefer 4GB’lık alanı Hardiskinizde ayrır)



"Star this virtual machine" ile makinanızı boot edebilirsiniz. Elinizdeki boot edilebilir Fedora CD’lerini direkt CD sürücünüze koyabilirsiniz. VMware sanal makinasını burdan boot edebilir veya "Nero CD Burning" yazılımındaki "Image Recorder" ile CD lerinizin imajını oluşturup bunu gene "Nero ImageDrive" aracılığı ile sanal bir CD sürücüsü açıp oraya yükleyebilirsiniz. Birbaşka seçenek ise elinizde CD’lerin ISO’ları mevcut ise VMware’de köşede gördüğünüz CDROM ikonuna tıklayıp burdan iso’nun dizinini göstererekte bu işlemi tamamlayabilirsiniz(Sanırım bu en kolayı). Ben tüm CD imajlarımı .nrg olarak tuttuğum için makale hazırlama süresince Nero ImageDrive kullandım.

Artık Fedora’nın kurulumuna geçebiliriz. Boot edilebilir CD mizi yerleştirdikten sonra Sanal Makinamızı başlatalım. "Fedora 2" başlıklı boot ekranını Enter ile geçerek görsel kurlumu tercih etmiş oluyoruz. Burda bize CD’lerimizi kontrol edip etmemek istediğimizi soran Test bölümü geliyor. CD lerinizden eminseniz bu bölümü Skip ile geçebilirsiniz aksi taktirde CD lerinizdeki hatalar kurulumun çökmesine neden olucaktır. PS: Bu arada VMware penceresine Tıklayarak girdikten sonra "Ctrl + Alt" kombinasyonu ile dışarı çıkabilirsiniz

 
Artık görsel kurulum karşımızda. Burdan aşağıdaki bölümleri Next ile geçebilirsiniz.

Burda kurulum tipini Custom olarak seçiyoruz çünki OpenOffice gibi kullanmayacağımız paketlerin sanal belleği şişirmesini istemiyoruz. PS: Eğer bir basamağa değinmemiş ise o bölümü next veya OK ile geçebilirsiniz

Burda biraz ayrıntıya girmeyi faydalı buluyorum.
Disk partion Setup: Automatic
Automatic Partitioning: Remove All Pations On This sistem

PS: /swap partion’ı swap türünden olmalıdır.Linux ortamında swap windows ortamındaki sanal bellektir. Diğer klasörler için /ext3 kullanılabilir.
Linuxda partionlar ile ilgilenmiyorsanız bu pragrafı atlayın. Gördüğünüz üzere sanal hardiskimizde 3 partiona ayrıldı, bunlardan en baştaki boot sonraki root klasörü ve sonuncusu da swap yani sanal ram. Root klasörü ( / olarak gösterilir) /var /etc /root /usr gibi temel klasörlerin bağlı olduğu başlangıç noktasıdır. Bu konfigrasyon şekli ile tüm klasörler 3,6GB lık bir partion da birleştirildi. Manual partion (Disk Durid) ile klasörler için ayrı partion büyüklükleri tanımlamanız mümkün. Örneğin send mail aracılığı ile gelen mailler /var/spool/mail/mailkutusu altında tutulur /var klasörünü ana partion’dan ayırıp daha çok yer ayırmak isteyebilirsiniz aynı şekilde kullanıcı dosyaları /usr/kullanıcı klasöründe, web sunucusu dosyaları /var/www/html altında tutulur gene bunlara ayrılan büyüklükleri düzenleme şansınız var.

Burda eğer statik ip üzerinde bir networkünüz varsa o zaman makinanıza yukardaki gibi yeni bir ip verebilirsiniz. Aksi taktirde tanımlı konfigrasyon ile devam edebilirsiniz. Ardından karşınıza Firewall bölümü gelecek tavsiyem kapalı tutmanız çünki şuanki kurlumumuz bir sunucu olamayacak sadece denemeler yapacağımız bir sanal makina, bu yüzden olduğunca az sorunla karşılaşmak bizi mutlu eder. Yani "No Firewall" ve Next.
Additional Language Support: Listeden Türkçe’nin yanına tik atmayı lütfen atlamayınız.
Set Root Passwors: en az 6 karakter olmalı

Işte en önemli bölümlerden biriyle karşı karşıyayız. Burda paketleri iyi seçmemiz gerekiyor örneğin mySQL’i kurmayı atlarsak kurlumsan sonra kurmak istediğimizde bizden ilk önce 1. CD ardından 3. CD ve gene 1.CD isteyeceğinden baya sinirlenebiliriz :)

Seçilmesi uygun paketler:
Editors [ Edit ] altındaki tüm paketlerleri (ekleyin)
Office (eğer office kullanmayı planlamıyorsanız çıkarmanız iyi olacaktır keza kurlumu uzatır)
Sound and Video (çıkarınız)
Graphics (çıkarınız)
Server Configrations Tools (ekleyin)
Web Server (ekleyin. eğer PHP çalıştırmayı düşünüyorsanız içine girip PHP modlarınıda ekleyiniz)
Mail Server (ekleyin, uygulamamıza mail attırmak isteyebiliriz)
Windows File Server (ana bilgisayarın paylaşılan klasörlerine bağlanmamız için gerekli)
SQL Database Server (isteğe bağlı. bu paket mysql4 ’ü içermektedir.ben kurmamanızı tavsiye ederim çünki ileriki makalelerde mysql5’in kurulumu ve getirdiği yenilikleri göreceğiz "örneğin stored procedures" )
Development Tools (kaynak koddan uygulama kurmak için gerekli)
Xsoftware Development (ekleyin)
Gnome Development GTK+ (Mono’da GTK# form tasarımı yapabileceğiniz Glade programını içermekte)
Administration Tools (ekleyin)
System Tools (ekleyin)
Printing Support (çıkarınız)

Kurulum 30 ile 45 dakka arası sürebilir ps: kurulumu hızlandırmak için windows task manager’dan vmware işleminin priorty’sini high yapabilirsiniz fakat olumsuz oluşabilecek bir durumda sorumluluk size aittir. Kurulum sonrası Fedora açıldığında bazı hatalar ile karşılaşabilirsiniz bu VMware ile fedora arasındaki renkderinliği anlaşmazlığından kaynalanıyor. Sık sık ekran gidip gelebilir buna aldırmayın gerekli değişikliği yaptıkdan sonra düzelecek. Ayrıca klavyeniz çalışmıyor ise Power bölümünden restart ediniz ve sanal makine açılana kadar pencereyi terketmeyiniz. "Text Login" ile aşağıdaki gibi giriş yapınız.

user: root
password: şifreniz

Ardından joe editörünü kullanarak X pencerelerinin konfigrasyon dosyasını düzenleyeceğiz. (CTRL + K + X kombinasyonu ile joe editöründe kayıt yapabilirsiniz. aynı anda basmanıza gerek yok sadece sırası önemli). Konsola joe /etc/X11/xorg.conf yazınız ve pagedown ile aşağı inerken Screen bölümünde "DefaultDepth 16" gördüğünüz değeri "DefaultDepth 24" olarak değiştirip kayıt ediniz (ctrl + k + x) ardından startx yazarak sisteme giriş yapabilirsiniz. ps: bu esnada gidip gelen görüntülere aldırmayınız

VMware Status de gördüğünüz araçları yüklemediniz uyarısını dikkate almayınız. Açıkcası toollar yüklenebiliyor fakat text mod’a geçmeniz ve uğraşmanız gerek. Ben denedim ne yazık ki araçlar fedora ile uyumsuz olduğundan gerekli hızlandırmayı gerçekleştiremiyorlar bu nedenle yüklemenin bir anlamı yok. Belki VMware’in ileriki sürümlerinde Fedora için direkt destek çıkabilir.  

 
PS: VMware ile ilgili değinmek istediğim son nokta menu’den Snapshot’ı seçerseniz o anki durumu kayıt eder. Burda login ekranından sonra Snapshot almanız çok önemli çünki Mono kurulumda içinden çıkamayacağınız bir duruma düşerseniz yukardaki revert seçeneği ile Snapshot aldığınız ana geri dönebilirsiniz. Ayrıca her seferinde makinayı kapamak zorunde değilsiniz işiniz bittiğinde Power menüsünden suspend ile işletim sistemini o anki durumu ile saklayabilirsiniz bir sonraki açılışında bıraktığınız ekrandan devam edecektir. Suspend’de Snapshot’daki gibi geri sarma olanağı yoktur lütfen buna dikkat ediniz.

Artık sanal makinanız üzerindeki Fedora’ya Mono ve MonoDevelop yükleyebilirsiniz. Dikkat etmeniz gereken konu Mono 1.0.1 sürümü Fedora 2 ile gelen Apache sürümündeki bazı kütüphaneler ile uyumsuz bu yüzden ASP.NET çalıştıramayabilirsiniz. Açıkcası bu mod_mono dan kaynaklanmakta bu yüzden eğer ASP.NET çalıştırmak istiyorsanız Mono 1.0.0 veya 1.0.2 sürümünü yükleyebilirsiniz. Aşağıda Mono 1.0.2’ın kurlunumu anlatıyor olucam.

VMware ve Fedora Core 2 üzerine Mono 1.0.2 kurulumu

Mount nedir ? Linux dosya sisteminde dosya okunacak tüm cihazlar önce mount edilmelidir. (mount türkçe: monte etmek) Yani CDROM olsun USB cihazları olsun disket sürücüsünden hardisk’e tüm dosya taşıyan cihazlar mount edilmelidir. Mount komutu linuxda tanımlı bulunmaktadır. Read (okuma), Write (Yazma) ve RW olarak bir cihaz mount edilebilir. Aynı zamanda samba uygulaması aracılığı ile bazı Windows sunuculardaki paylaşılmış klasörlerde sanki linux’ın yerel klasörüymüş gibi mount edilebilir. /mnt klsörü disket, cdrom ve usb gibi cihazların tutulması için kullanılır.

Kolay kullanım. Terminal’i ilk kez kullanıyorsanız bilmeniz gereken bir ikinci konu dir klasöre girmek istediğinizde klasör yolunu yazarken bir kısmını yazdıktan sonra TAB’a basarsanız terminal otomatik olarak bunu tamamlıyacaktır.

RPM nedir ? RPM ’ler kaynak kodları derlenmiş hazır paketlerdir. Kaynak kodundan kurulan programlarda (genelde tar.gz olarak sıkıştırılmışlardır) gereken configrasyon farklılıklarını ortadan kaldırmaktadır.Aynı zamanda bağımlı paketleri de kullanıcıya belirtmektedir, kaldırması veya güncellemesi daha kolay yapılardır. 

ps: kurulum 1.0.2 ’de gerçekten çok kolay ama ne yazık ki 1.0.0 de paket sıralarına dikkat etmeniz gerekmekte aynı zamanda asp.net’i apache üzerinde çalıştırmak için gerekli olan mod_mono’yu da kaynak kodun’dan derlemek zorundasınız. Burda 1.0.0’ı derlmek gibi bir zorunluluğunuz olursa bana mail atmaktan çekinmeyiniz.

Gerekli Dosyalar: http://www.go-mono.com/archive/1.0.2/fedora-2-i386/

Burda mono-all.zip ’i çekip bir klasöre açtıkdan sonra yandaki ekran görüntüsü gibi bir imaja kayıt ederseniz bu şekilde tekrar tekrar kullanma şansınız olur veya Linux üzerinden nete çıkabiliyorsanız bunu /root klasörüne kaydettikten sonra orayada açabilirsiniz. Her durumda ben gerekli rpm dosylarını cd içerisinde mono.1.0.2.rpms altına açılmış ve buraya kayıt edilmiş gibi davranıcam. ps: yandaki ekran görüntüsü 1.0.0 için alınmıştır sizin 1.0.2’yi indirmeniz gerekmektedir burda kafanız karışmasın. 
Bir terminal ekranı açıp mount edilmiş cdrom içerisine geçip rpm -ivh --force *.rpm ile kurulumu başlatabiliriz. burda --force kullanmamın sebebi eğer PHP kütüphanelerini yüklemeyi seçtiyseniz PHP GTK+ için gelen kütüphanelerin mono ile çakışması sonucunda mono ile gelen kütüphaneler yeni olduğundan üzerine yazması için kurulumu zorluyoruz. Aşağıda kurulum ile ilgili iki ayrıntılı ekran görüntüsü bulabilirsiniz.

Bu işlem sonrasında artık mono uygulamalarını çalıştırabiliriz fakat bir denemeyi bu aşamada yapmayacağız çünki eğer asp.net çalıştırabilirsek bu aynı zamanda zaten mono’nun çalıştığını ispatlayacaktır. O yüzden hemen asp.net kurulumuna geçiyoruz.

Mono 1.0.2 ve ASP.NET kurulumu

Bildiğiniz üzere IIS ’de ASP.NET uygulamarını çalıştıran asp_wp.exe bulunmakta bunun için mono da XSP tasarlamış durumda; bu şekilde bellek yönetimi kontrol edilebilmekte. Gerekli derlenmiş ara kodlar /tmp/mod_mono_server klasörüne kaydedilmekte. XSP için gerekli yüklemeyi farkettiyseniz RPM’ler ile yapmıştık. Şimdi sunucu her açıldığında otomatik olarak XSP’yi de ayağa kaldırması için son bir kaç düzenlemeyi de gerçekleştirdikden sonra artık merhaba dünya diyebileceğiz. Fakat önce apache’ye aspx dosyaları için mono’yu çağırması gerektiğini belirtmemiz lazım.

ps: XSP sadece bir modül değil aynı zamanda istendiğinde kendi başına bir sunucu gibi davranabilmektedir. Fakat asp.net’in apache dışında kullanıldığını düşünmek sanırım biraz yanlış bir yaklaşım olur

Bunun için gedit /etc/httpd/conf/httpd.conf ile açtığımız konfigrasyon dosyasına mod_cgi.so ardından alttaki 2 satırı eklemeliyiz AddHandler mono .aspx .ashx .asax .config .ascx .cs
MonoUnixSocket /tmp/mod_mono_server

sıra geldi XSP’yi çalıştırmaya.

cd /usr/bin
mono mod-mono-server.exe --root /var/www/html --applications /:/var/www/html --nonstop &  // burda size çalışma bilgisi gelene kadar bekleyiniz
cd /tmp
chmod 666 mod_mono_server

son yazdığımız satır ile geçici aspx binary dosyalarının yazılacağı klasöre yazma yetkisi verdik. Artık apache’yi çalıştırabiliriz bunun için

httpd -k start

ihtiyacımız olan bir aspx dosyası bunuda gedit /var/www/html/index.aspx ile açıp içini aşağıdaki gibi düzenledikten son mozillada Http://localhost/index.aspx yazdığımızda aspx dosyamızın çalışması lazım. ps: terminal penceresini kapamayınız

<% Response.Write("selam");

%>
XSP sunucusunun servis olarak tanımlanması:

Terminal penceresini kapatıp tekrar aspx dosyasına ulaşmaya çalışırsanız service unavaible gibi bir hata ile karşılaşıcaksınız çünki XSP’yi çalıştıran terminal ortamını kapadık. Bunun için XSP’yi bir servis olarak tanımlamamız gerekmekte. Gelişmiş ve xml dosyalarına göre host açan servis uygulaması kodları mevcut fakat bizim amacımız şuan için sadece bir XSP servisini ayağa kaldırmak.

cd /etc/init.d
joe xsp

aşağıdaki dosyayı joe içine giriniz. ps: terminal ekranına paste edebilirsiniz

#!/bin/bash
#
# Startup script for xsp server
#
# chkconfig: 3 84 16
# description: xsp is a asp.net server
#

RETVAL=0

case $1 in
start)
echo -n $"Starting xsp..."
mono /usr/bin/mod-mono-server.exe --root /var/www/html --applications /:/var/www/html --nonstop & >/dev/null
sleep 8
chmod 666 /tmp/mod_mono_server
echo
;;
stop)
echo -n $"Stopping xsp..."
killall mono
echo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: xsp start|stop|restart"
;;
esac
exit $RETVAL

Ardından servis listesine eklememiz ve çalıştırılabilir hakkı vermemiz gerekmekte

/sbin/chkconfig --add xsp
chmod +X xsp
chmod 777 xsp

Artık servis tablosunda xsp’yi görebilir ve başlatabiliriz. ps: xsp yanına tik atıp servis tablosunu kayıt ederseniz bilgisayar her başladığında yanında tik olan servisler başlatılır bu sayede xsp de başlar. httpd yani apache tanımlı olarak başlangıçta başlamaz bu yüzden yanına tik atmayı ve tabi servis tablosunuda kaydetmeyi unutmayınız. Geçmiş olsun artık windows içerisinde çalışan bir Linux makineniz ve onun içindede .net kodları çalıştıran mononuz var :)

Mono’da başka yerde bulamayacağınız Türkçe içerik için CSharpnedir.com’u takip edebilirsiniz.
Makale:
Mono ve Sanal Makinalar Mono - Linux'ta .NET Ahmet İpek
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor