Öğrencilerin üzerinde çalışması için Linux sanal makinesini dağıtmak istiyor


25

Mac ve Windows çalıştıran öğrencilerim var. Her sömestr, “X” aracının nasıl kurulacağına dair daima çok soru vardır. Tek bir Linux sanal makinesi (VirtualBox'ı denedim) oluşturmak ve resmi dağıtmak istiyorum. Bu şekilde, tüm araçlar önceden yüklenmiştir ve herkes Linux kullanıyor.

Soru, insanların farklı grafik donanıma sahip olmaları durumunda, bu nasıl çalışır? Yoksa işe yarıyor mu? Ve eğer öyleyse, nasıl dağıtırım? VirtualBox'u kurmak zorunda mı kalıyorlar, daha sonra onlara verdiğim bir dosyayı yüklüyorlar mı yoksa kolayca tek bir yükleyici oluşturabilir miyim?


13
Virtualbox, bir Cihazı dışa aktarmanıza izin verir . Bu dosya herhangi bir sanallaştırma yazılımına (VMWare, Virtualbox vb.) Alınabilir ve kendisini yerel donanıma göre yapılandırır. Bu istediğin gibi görünüyor. Tek bir yükleyici mümkün değildir, çünkü aynı programı WIndows (.exe) ve Mac (.app) üzerinde çalıştıramazsınız.
GiantTree

Farklı bir şekilde tekrar kurmak zorunda mıyım, yoksa sanal makinemi bir cihaz olarak kaydedebilir miyim?
Dov

Herhangi bir sanal makineyi Virtualbox'a bir Cihaz olarak kaydedebilirsiniz. Yapmanız
Gerekenler

Bazıları, dosya boyutunun cihazınızın dosya indirmesi sırasında sorun olabileceğinden Vagrant'ı bir çözüm olarak öne sürüyor. Gerçeği söylemek gerekirse, minimalist bir ortam kurarsanız ve sanal HD'yi oluştururken ince provizyon kullanıyorsanız, 100 MB veya daha düşük bir dosyaya sahip olabilirsiniz. Sadece bunu eklemek istemiştim, çünkü kimse ona hitap etmedi.
Geruta,

1
@gronostaj: Görünüşe göre bu zavallı VM matriste yakalandı! : O
Zaibis

Yanıtlar:


24

Mperrin'in Vagrant-merkezli cevabını seviyorum , ancak oradaki yorumlardan da görebileceğiniz gibi, benim kişisel görüşüm “basit tutmak” ve bir VirtualBox OVA'nın basit bir şekilde dışa aktarılmasını öneriyorum. .

Yani, şunu sorarsın:

Soru, insanların farklı grafik donanıma sahip olmaları durumunda, bu nasıl çalışır? Yoksa işe yarıyor mu? Ve eğer öyleyse, nasıl dağıtırım? VirtualBox'u kurmak zorunda mı kalıyorlar, daha sonra onlara verdiğim bir dosyayı yüklüyorlar mı yoksa kolayca tek bir yükleyici oluşturabilir miyim?

DevOps'a Veering

Ne öğrettiğinizi, ne yaptığınızı ya da öğrencilerinizden bu alıştırmaların tümünden çıkmalarını beklediğinizden pek emin değilim, ancak endişelerinizin birçoğu DevOps (gelişim ve işlemler) alanına giriyor ve isteyebilirsiniz. Bu kavramı öğretilerinize karıştırmayı düşünmek.

Şimdi, tüm DevOps konseptinin aktarılması gerektiğini düşünmüyorum, ama bence, öğrencilerinize aktaracağınız ve ev / okul makinelerinde kullanmalarını isteyeceğiniz istikrarlı bir VirtualBox OVA yaratmanız kesinlikle onlara bir kapı açacaktır. birinin farklı donanım / sistem kurulumlarıyla nasıl başa çıkması gerektiği ve nasıl uyum sağlayabileceği ile ilgili sorular

Bu yüzden, benim tavsiyem , öğrencilerin kuracağınız VirtualBox OVA'yı kullanmasını şiddetle tavsiye etmeleri, aynı zamanda öğrencilerin kendi başlarına araçları kurmalarına izin vermeye açık olmalarıdır. Bağırsaklarım bana% 95'ten çok daha fazlasını — VirtualBox OVA yöntemini mutlu ve kolay bir şekilde kullanacaklarını, ancak% 100 mükemmel olmasını bekleyemezsiniz.

Belki de sonuçta, kurs aracı kullanımı için bazı temel gereksinimlere sahip olmanız ve uygulamalarında esnek olmanız gerekir.

Araçların Nasıl Kullanıldığına İlişkin Esnek Olun

Örneğin, çok PHP geliştirme yapıyorum ve PHP geliştirme ile ilgili sistem yönetimi / DevOps yapıyorum. Ve bir Mac’te olduğum için yerel gelişim için MAMP’ı kullanmayı tercih ediyorum . Ancak gelişmeleri için Linux veya Windows kullanan geliştiricilerle çalışıyorum. Heck, bazıları LAMP geliştirme ihtiyaçları için VirtualBox ile birleştirilmiş Vagrant kullanmak gibi. Tutum, temel işletim sistemi kurulumlarının ne olduğu umurumda değil. PHP sürümleri, müşterilerimin kullandığı sürümler ile aynı çizgide olduğu sürece, her neyse işe yararım.

Bazen bir geliştirici bir hatanın nedenini belirtir çünkü MAMP'da test ettiğim kod bir Linux LAMP kurulumunda olduğu gibi “aynı değil”. Ve% 100 güven ile derim ki, sorunun her zaman temel işletim sistemi değil, PHP'nin kendisini kodladığını kanıtladım.

Bu yüzden tüm bu kırıcı temelde aşağıdakileri iletmek içindir: Sadece bir VirtualBox kurulumunun öğrencilere kullanımına ilişkin açıklamalarınızda esnek olun ve bir işletim sisteminin kaşıkla beslenmesini tüm sorunları sonlandırmasını beklemeyin. Sorunlarınızın% 95'ini parkın dışına çıkarabilir, ancak% 5'inin her zaman bir şekilde ele alınması gerekebilir. Öyleyse bir VirtualBox kurulumuna - ve belki de bir Vagrant betiğine - bir cephanede yaşamı kolaylaştırmak için kullanılabilecek bir araç olarak bakalım, ancak tüm meseleler için her şeyden önce gelebilecek çözümü değil.


3
C ++, java, Data yapılarını öğretmek ve bu beni ilgilendirmeyen sysadmin / devops'dan kurtulma çabası!
Dov

1
@Dov Eğer öyleyse, bir VirtualBox OVA ihraç etmek ve bunu sınıfınızdaki insanlara dağıtmak en iyi yoldur.
JakeGould,

18

Vagrant'a bir göz atmalısın .

Vagrant, VirtualBox'ı destekler ve şunları yapmanızı sağlar:

Hafif, yeniden üretilebilir ve taşınabilir geliştirme ortamları oluşturun ve yapılandırın.

Tek bir veya birkaç metin dosyasını paylaşmak , büyük bir VirtualBox görüntüsünün dışa aktarılmasından daha kolay olacaktır . Özellikle güncellemeleri yönetmek istiyorsanız.

VirtualBox ve Vagrant basit bir şekilde kurulduktan sonra:

vagrant up

İrade:

Tek bir Vagrantfile, Windows veya Mac ana makinelerinin özelliklerini de işleyebilir.


7
Vagrant kötü bir fikir olmasa da, yalnızca bir VirtualBox aygıtını dışa aktarırken, öğrencilere VirtualBox'ı yüklemesini söyleyen ve daha sonra bu aygıtı VirtualBox'a aktarmalarını istemek, Vagrant'ın bir makineyi sıfırdan kurması ya da Vagrant riski olmadan, birkaç adımda işi yapmasını sağlar karışıma haşhaş idiosyncrasies.
JakeGould,

1
Haklısın, ihracat kesinlikle en yalındır ve en basit yaklaşımdır. Ancak ihtiyaçlara bağlı olarak, serserinin burada belirtilmesi gerektiğini düşündüm. Büyük ova dosyalarının yüklenmesini / indirilmesini yönetmek, özellikle güncellemeler proje bazında yapılması gerektiğinde sorunlu olabilir. İki yaklaşımla ilgili daha fazla karşılaştırma bu çok iyi iş parçacığında bulunabilir. Superuser.com/questions/584100/…
mperrin

Diğer postaya çok güzel notlar. Benim düşüncem şudur: Komut dosyasıyla 2'den fazla sunucuyu dağıtmak için Vagrant'a ihtiyacınız olduğunu düşünüyorsanız, bunun için gidin. Ancak çoğu masaüstü kullanıcısı ve basit geliştirici için, VirtualBox ile sadece “kendi sıranızı” aynı şekilde çalışır.
JakeGould,

1
Sizin durumunuzda, dışa aktarma işleminde sersemlemenin diğer bir avantajı, öğrencilerinizin sağlama komut dosyasını inceleyerek görüntüyü "nasıl yükleyeceğini" yapılandırma ve yapılandırma becerisidir. Görüntünün geçmişinden çok daha kolay.
mperrin

8

Hiç önemli değil - sanal kutu (ve diğer tüm sanallaştırma yazılımları) kendi video adaptörünü (IIRC cirrus mantığı) taklit ediyor. Geleneksel sanal kutu ayarları ve depolama için farklı dosyalara bölünürken, önerildiği gibi bir ovf dosyasına verebilirsiniz. Öğrencileriniz sanal kutu veya vmware kurabilirlerse önemsiz olmalıdır. Olmazsa öğrenmeleri gerekir.

Virtualbox'ın kurulması oldukça önemsizdir (donanım desteğiniz olduğunu varsayarsak).

Önerebileceğim birkaç şey var - VM'yi 32 bit (ana bilgisayardaki VT-X desteği konusunda endişelenmenize gerek yok) saklayın, büyük 2 işletim sistemine sanal kutu yüklemek için bir yöntem oluşturun (pencereler kolaydır, linux'un birkaç ek adıma ihtiyacı vardır) ve OVF dosyasını içeri aktarıyor. Bu aynı zamanda öğrencilerin vmware oynatıcıyı veya benzerlerini kullanmak istedikleri anlamına gelir. Dışarıdan erişilebilen bir sunucuyu çalıştırmanız gerekmiyorsa, ağ iletişimi için NAT kullanın.

Performans bir sorun değilse , muhtemelen yalnızca her şeyi bir QEMU örneğine (kendi kendine yetecek şekilde ayarlamak için ayarlanabilir) ve uygun başlangıç ​​komut dosyalarına toplayabilirsiniz. Bunun son çare olduğunu düşünürdüm .

Birçok üniversitenin aslında uygun araçlar sunan bir sanal makine tedarik ettiğine dikkat çekerim ( IIRC stanfords CS 50 bunu yapar ve edx'den ücretsiz olarak alınabilir bir derstir), bu yüzden nasıl yaptıklarına bakmaya değer olabilir.


3

Çoğu sanallaştırma teknolojisine bir alternatif olarak, Linux (örneğin Ubuntu) bir parmak izi sürücü üzerine kurulabilir. Hemen hemen her bilgisayar bir flaş sürücüden başlatılır ve çoğu modern yükleyici, açılışta ekran kartlarını / ağ kartlarını algılar. Bir 32 bit Ubuntu yüklerseniz, insanların evde olması muhtemel olan hemen hemen tüm donanımlarda çalışır.

Dağıtılması kolaydır ve HERHANGİ ek bir ek yazılım gerektirmez. Makineden makineye kolayca taşınabilirler - okul bilgisayarından çıkarın, cebinize koyun. Eve geldiğinde, fişe tak.

Oldukça ucuza sahip olabilirler (okul bütçelerinin çok sınırlı olduğunun farkındayım!); Makinede hangi uygulamanın çalıştırılacağına bağlı olarak, 4 gb yeterli, belki de 8 gb olmalıdır.


Lisedeki herkesin bir dizüstü bilgisayarı var. Bir usb için bir ihtiyaç olduğunu sanmıyorum.
Dov

1

Dikkate alınması gereken başka bir seçenek. Bir GUI'ye sahip olmaları için gerçekten endişelenmiyorsanız, terminal.com gibi bir şey kullanabilirsiniz .

Kendi genel anlık görüntünüzü oluşturabilir ve bunu öğrencileriniz için basit bir şekilde saklayabilirsiniz. VirtualBox yaklaşımına benzer, ancak VM'leri kendi makinelerine kurmak yerine, başkalarının makinesine ait bulutta bulunur .

O zaman tek ihtiyaçları olan yeterince modern bir web tarayıcısı. Eğer ilgileniyorlarsa, kurabilirler böylece SSH / Putty / etc kullanabilirler.

Rakamlarına göre, eğer öğrenciler mikro örneği kullanıyorlarsa (256 MB RAM, birkaç GB disk alanı), VM'yi kullanmadıkları zaman duraklatırlarsa, 8 saat / yıl çalıştırmaları onlara 9 $ / yıl çalıştıracaktır. gün. Terminal.com için konuşamıyorum, ancak onlarla iletişim kurmanız durumunda size bir tür eğitim indirimi sağlayabilirler.


Benzer bir hizmet [SDF.org] (sdf.org/?join) 'in eğitimciler için ücretsiz halka açık kabuğudur. SSS öğret . Bir VM değil, ama yine de iyi.
HSchmale
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.