aMSN Forums
February 10, 2012, 07:05:54 pm *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: New forum for aMSN !!
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Windows to Linux migration.  (Read 6964 times)
H@t Trick
Super Power User
**
Offline Offline

Posts: 340



View Profile
« on: November 29, 2007, 09:14:54 am »

Hi everyone,

As many of you know I am a Windows XP use and am quite happy with it. I have been planning on EVENTUALLY moving to linux, though my experience with Red Hat in College and with SLED/SLES 9.x/10.x while working for an IT company last summer, I wasn't impressed. My main apprehension is with application installation and dependencies, in Windows any dependency issues are taken care of by the installer or the OS. Usually there are none, othan requiring a new version of the Windows installer, or .NET, or Java,  or VB, or DirectX but even then the installer usually goes and gets it for you or has it included and will install it. This is the way it should be, shouldn't it? The end user should never have to worry about dependencies, is this what the Autopackage is for?

Do you guys have any advice for a Windows power user who grew up on DOS and isn't afraid of the command line?  I pretty much only remember ls in the Linux CLI  is essentially equivalent to dir/w in DOS (or the command prompt in when on an NT based system of course) right? (or is that wrong?).
Which distros would you suggest I look into? I have looked into Xandros and am very much seriously considering it as a means of easy conversion to Linux. From what I have seen of Ubuntu it looks very different from Windows XP and I don't want that at all. It's too bad ReactOS isn't even in beta because then I wouldnt have to consider Linux and would still be MS free.

I there a GUI for using aMSN SVN on Linux (otherwise I think I'll be stuck with the Autopackage).

Any and all advice is much appreciated.
Logged

There's no place like 127.0.0.1!
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9424


View Profile WWW
« Reply #1 on: November 29, 2007, 09:52:16 am »

Hi,
first, thx for choosing the appropriate forum for posting that question ! Smiley
I tried many many different distros (almost all). Ubuntu is debian based and is the most used one (apparently) because of how simple it is and very well integrated. But I still prefer the original debian for reasons still unknown to me (debian is much more stable and packages are done better imho, but it might just be my own bad experience with it that makes me think that). For a server, I'll say debian, for a desktop, I'll say ubuntu since it's very well done for user friendlyness and ease of use, etc...
I suggest either debian or ubuntu, try it, you'll see, with ubuntu, linux is much more user friendly that what you seem to think of it.
Autopackage doesn't install dependencies or anything like that, all it does is make sure the dependencies (tcl and tk) are installed (but won't install them for you if they're not), and will give you a nice UI for installing apps.
With debian (or ubuntu which is debian-based) the command you need to know is "apt-get", it will do whatever you need it to do. For example, you do :
Code:
apt-get install amsn

it will install tcl, tk, tcltls, X (for the traydock), then amsn. All in the blink of an eye, it's all pre-compiled for you.
You want gnome, you type :
Code:
apt-get install ubuntu-desktop

IF you want apache :
Code:
apt-get install apache2

If you look for a vnc server :
Code:
apt-cache search vnc server

it will list all available vnc server (linuxvnc, xvncserver, vncserver, vnc4server, tightvncserver, etc...)
one command and all dependencies (sometimes hundreds) are downloaded, installed and set up. For example, apt-get install ssh-server, it will install it and ask you to configure it through a GUI.

There is a GUI for svn (probably a lot), but I only use the command line, it's easy :
Code:
apt-get install subversion

then svn checkout http://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn
then just open a terminal to your amsn folder and type 'svn update' and you're done...
You can have a look at the GUIs if you want... just do :
Code:
apt-cache search svn gui

(it will find rapidsvn).
blablabla, I think I babbled enough, you can find all the info you want on the net, I hope what I said is a good start for you.
Have fun!
Logged

KaKaRoTo
Daniel15
Super Power User
**
Offline Offline

Posts: 269


View Profile WWW
« Reply #2 on: November 29, 2007, 11:02:25 am »

Quote
y main apprehension is with application installation and dependencies, in Windows any dependency issues are taken care of by the installer or the OS. Usually there are none, othan requiring a new version of the Windows installer, or .NET, or Java, or VB, or DirectX but even then the installer usually goes and gets it for you or has it included and will install it. T

This is one of the major problems with Windows... Dependencies are often bundled with the application itself. If you install different applications, each may come with a different version of the library, and these different versions can conflict with each other (this is referred to as DLL Hell).

As KaKaRoTo was saying, it's a lot easier on Linux - Just install a package, and the package manager will find all the dependencies. There's a nice GUI for the package manager called "Synaptic"; go to System → Administration → Synaptic Package Manager in Ubuntu Smiley.

Quote
I there a GUI for using aMSN SVN on Linux

You may use RapidSVN, it's a SVN client.
Although, I used to use a script posted to the Ubuntu Forums which automatically downloads and installs the latest aMSN SVN version (as well as the latest Tcl/TK versions). Alternatively, there's some package repositories (eg. Treviño’s) that have aMSN SVN builds.  Smiley

Hope this helps you Smiley
If you have any problems using Ubuntu, the Ubuntu Forums are incredibly helpful, and most questions have already been asked so the search is invaluable.
Logged

Ubuntu 8.04, Tcl/Tk 8.5, aMSN SVN
My sites: [DanSoft Australia] [Daniel15's Forum and Blog and more...
H@t Trick
Super Power User
**
Offline Offline

Posts: 340



View Profile
« Reply #3 on: November 30, 2007, 08:38:22 am »

Thanks guys for the info.
KKRT, yw! I know many people would have posted int he Linux section but this isnt about aMSN directly so that obviously means this is the right place Tongue

The info on Ubuntu is great and has convinced me to reconsider my decision to write it off. My major issue is the look and feel of Gnome (seems to be the latest versions are too Mac like for me with that menu bar at the top of the screen) isnt what I want really, I am looking more at KDE and as close to Windows look and feel as possible (hey I gotta start somewhere with Linux right?), which is why I was looking at Xandros of Freespire/Linspire, I don't mind paying for an OS. I will look at Ubuntu more closely though (maybe Kubuntu, this is a KDE version of Ubuntu right?). I've heard there are more major desktops than just Gnome and KDE, such as Beryl-Compiz (or are these add-ons?) and Xfce or Evolution, I havent seen screen shots of these, are these Windows like interfaces, I haven't seen any screenshots of these (I tried to look at Evolution's page but there wasnt much there).

Any thoughts on Xandros or Freespire/Linspire or similar specifically? Any word on people using aMSN on these? I assume there should not be any issues and a regular .deb or apt-get (if not in the respective repositories) for these would work for aMSN as they are all Debian based?


KKRT, you mentioned a few things that seemed odd to me
"apt-get install ubuntu-desktop" does Ubuntu install with just the CLI by default and have to install the desktop manually after? If so that seems counter-intuitive for a desktop OS.
you said "X" for the traydoc (I assume this is equivalent to the systray?), I thought X always referred to the X Windows system (either X.org or XFree86) which is required for most (any?) window manager (KDE/Gnome?)?
Another thing, I thought being based on an interpreted language there was no compiling needed? or is this like Java where you compile it to bytecode?

As for installing apps it too bad there are not downloadable executable installers like with Windows. This seems the best way to do things to me.

I will be looking into RapidSVN it sounds like what I will want. As much as I dont mind using a CLI and it doesnt scare me at all I try to avoid it at all costs (hey when I am at work instead of walking a customer through the command prompt to release and renew and IP or even to get ipconfig  info when needed I try to use Network Connections applet instead and the repair function button in XP (actually one good thing with Vista is the Diagnose function button which will attempt to correct network settings on the fly instead of just release/renew and flushing caches and such, ok sorry for going off topic).

Daniel, you mentioned DLL Hell, This seems to be, in my experience extremely rare on any version of Windows (never really used Me or MeII aka Vista personally so maybe they are different) experienced anything that I would even remotely consider DLL hell. I have had the odd missing DLL file but even that is few and far between and usually is not related to program installs, usually it's a crash, user error, and/or malware. I like dependencies bundled with apps, just my experience that while this may create some bloat it just works better in practice (my opinion, not neccessarily reality). Last summer I was working for an IT company and was helping to test out a high end UPS system that used USB and had Linux's support, we had a hell of a time getting it to run on SLES 9.x, even with people who were Linux gurus, I think we resorted to a generic UPS management app that didnt have dependency hell, this was worse than anything I have ever experienced with Windows and scared me off (there were other experiences in college dealing with tarballs and stuff whatever those are to install an accounting app on Red Hat).

Man what a long post...sorry guys Sad I hope you were able waded through my probably incoherent ramblings. (did it make any sense)

Again thanks in advance for putting up me and for any and all information and advice.
Logged

There's no place like 127.0.0.1!
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9424


View Profile WWW
« Reply #4 on: November 30, 2007, 11:27:07 am »

Hi,
yes, Kubuntu is the same as ubuntu but uses KDE as the default desktop, there's also Xubuntu (for xfce) and probably many others...
About the desktop, I don't see why you would want "something like windows", you're used to it, ok, but it doesn't mean it's better. You might like gnome or kde or xfce or whatever, better than your windows desktop. You're moving out of windows, so try not to stay attached to some things like that. I suggest you try a few desktops for a while, then decide which one to keep. I personally don't like gnome or kde (they look too much like windows:p) because I'm used to enlightenment... you can try the http://www.elivecd.org (apparently, he now requires a donation... development version is free, and if you post on some website about elive, you get it for free... whatever).  I tried elivecd a long time ago and it's great, works great and is very useful. You could also use ubuntu then install E17 on it (but elive is still better since it got preconfigured a lot of stuff).
The distribution you choose should NOT be based on the desktop you want to use. The distribution is about your needs... for example :
debian : excellent for servers, very very very stable
ubuntu : user friendly, good for newbies, for a desktop
gentoo : if you're an optimization freak, you compile everything yourself optimized for your CPU (the whole system, even the compiler, you will recompile it with gentoo)
slackware : very good and stable but not user friendly
Fedora Core : easy to use afaik, haven't tried it so I can't say what's its pros and cons
etc...

Fedora Core uses rpms (use 'yum' I *think* as equivalent to apt-get), ubuntu/debian use .deb files (apt-get), gentoo it's .ebuild, slackware .tgz ...

The window manager you want to use can be installed on ANY of these distributions (most of the time you'll have many window manager and when you login, you can choose which one to use for your session).
about ubuntu with the bar being at the top, I'm pretty sure it's configurable and you can put it wherever you want (probably just drag/drop the bar to the bottom...) but I don't use gnome so I can't tell you how to do it. What I do know though is that KDE is huge and slow... and most people are pro-gtk/pro-gnome, but I don't want to start a flame war (I don't use ANY of them!)

aMSN (and any other linux program) should just work the exact same way on all of these distributions.. read wikipedia or something to know what's really different about each distro.. usually, it's just a matter of 'taste', + the pros and cons of each.
An example of difference is, on debian, you do 'apt-get install amsn', you'll get version 0.94 maybe because debian is focused on stability and until the newer version is thoroughly tested and certified stable, it won't go in the apt-get repository (I might be a bit exagerating now...), on ubuntu, you might find the 0.97RC1, on gentoo, you can use a flag for it to download and compile the SVN version directly... So that's where the difference goes, how often the packages get updated, how stable is it, how thoroughly tested is it, etc...
Apart from that.. linux is linux.. so any linux program should work the exact same way no matter which distribution (unless for example distro foobar uses a new version of Xorg which itself has a bug, so amsn will crash because it can't connect to the X server, blablabla, but it's a rare case).


About your 'apt-get install ubuntu-desktop', you're right, it would be counter intuitive, and no,y ou don't need to do it manually on the CLI, but that's how I do it, because I prefer a simplistic system, so when I install the OS, I use the 'bare system', which is usually around 60 MB, then I install what I need when I feell the need for it, so usually after a month or two, any program that I might need (emacs, vi, more, less, ssh, svn, etc...) will be installed, and I have the system I need. but in theory, it should install the 'ubuntu-desktop' (which contains hundreds of dependencies, like X, gnome, etc..) by default.
Same goes for the next question.. since I use windows at home, I have linux only for my server.. the server is headless (no screen) so I don't need to install any window manager or X... so if I try to install amsn on it, it will try to install X with it since it's required... but anyways, it was just an example to show you the dependency system, it will depend on it, but it will not install it for you since it would have been already installed.

Concerning downloadable executables, no, that's the whole issue with linux, there are literally thousands (or hundreds of thousands) different distributions of linux out there, each one being different.. one uses X.org, others use Xfree86, some use libstdc++ 5, others libstdc++ 6, some have libc ABI compatible with gcc 3.4 others with gcc 4.0, some have gnome, some have kde, some have foobar, etc... in general, it's so much customizable that everyone has something different.. amsn depends on TkCximage for image handling, which is a library written in C++ so it links against libstdc++... I think that today 1/3 of the systems have version 5 and 1/3 have version 6 and 1/3 have both versions installed. Compiling amsn to work for them all was a huge problem, everyone was having difficulties, it was the biggest question in the forums when 0.95 got out.  autopackage takes care of this problem by having a very old libc ABI so everyone is compatible, and the libstdc++ issue is solved by statically linking the libstdc++ library into the .so
anyways, in short, that's the problem with linux, I think the biggest problem, it means that everyone has to compile their programs for their systems... but thanks to distros repositories, your system has the same configuration as everyone using the same distribution (and same version), so you can download binary files for your distro, and it will work on your machine.
With aMSN, what we did before is provide something like 20 different packages, one for each type of distribution... it was such a huge issue.. but nowadays, it's not a problem anymore.

Having an executable is nice like in windows, but a repository system is better.. everything is taken care of by the system. If you can't find a program in the system, you can always write to the distro maintainers to add the package there, or just use the 'normal linux method', download the source package, extract it, and type "./configure && make install" and you're done... if it doesn't build, it will say something like : "libpng-dev missing" then you do apt-get install libpng-dev, and rerun the configure/make.. do it until all dependencies are met....
You can also create a debian file, and install it and you're done (for amsn, type "make deb" it will create the deb, so you can uninstall with apt-get remove amsn... if you were to use the SVN version).


Concerning amsn, compilation, etc.. no, there is no compilation needed for the amsn code.. BUT we use tcl/tk... it's fully interpreted, not like java, but the main problem with it is that it's very limited on what you can do.. so we HAD to add extensions to the language...
for example, there's no way to capture from a webcam.. so we had to write code in C to capture from the webcam and create a Tcl extension that will allow us to do it from tcl... same for image handling.. Tk only handles gif files, we need png support, so we have an extension for the png/jpg/etc... the voice clips and webcam codecs are written in C... the traydock is in C, the code for making the taskbar flash when you get a new message, it's in C... for capturing audio for the voice clips, it's libsnack (which is a dependency, we didn't write that extension)... some for drag&drop support... etc...
Just so you know.. Tcl is a 'shell'... it's actually 'tclsh' the command for it.. so you can use it instead of bash if you want :p Here's the list of ALL the commands it provides : http://www.tcl.tk/man/tcl8.4/TclCmd/contents.htm  (and http://www.tcl.tk/man/tcl8.4/TkCmd/contents.htm for the toolkit)... compare that for example to the Java classes http://java.sun.com/j2se/1.4.2/docs/api/allclasses-noframe.html .... that's why some things have to be compiled.. but apart from these 'extensions', everything is interpreted.

Finally, about DLL hell, I don't know what that is *exactly*, but go to c:\program files\ and look in each directory for the dlls.. try to see how many times the same dll are shipped with the program.. amsn for example c:\program files\amsn\bin.. what do you see? tcl/tk interpreter in there... good.. now you install another program which uses tcl/tk.. what will happen ? they'll also bundle tcl/tk with their app.. so now you have two installations of tcl/tk, both being 'private' (not usable by other programs), so it's a huge watse of space.. same goes for libiconv, or whatever.. and think about ALL the apps that use openssl... how many are they ? they all have the dlls of openssl bundled with them... it's a huge waste of space.. on linux, you install ONLY the program, all the dependencies get installed system-wide so everyone can use them, and everyone uses the same version.. if a new version of openssl is out (to fix a security hole for example) ALL programs using openssl become more secure... while on windows there would be only one program with the new version of the dll and all others are still vulnerable... etc.. that, I would call dll hell.. although I'm not sure if that's what he meant.

Concerning that UPS thing, it's probably a rare case... from my experience, linux works best.. here's an anecdote.. I have a webcam and ALWAYS had issues with it on windows, the drivers had to be installed everytime, I always needed the CD with me.. for some reason the driver get uninstalled without me asking for anything, etc... it was hell... on windows... I never had the guts to test it on linux, being sure it would be hell to get it to work on linux... but once, I had no choice, I had to do webcam, and had no windows pc around.. so I plugged it in, and was waiting for the worse... as soon as I plugged it, the driver (that was installed with the system) got loaded into the kernel, automagically, it detected my webcam, added the device, and it was usable right away... I was so surprised on how easy it was...

For UPS, I also bought APC ups systems last year.. I installed the utility suite in windows, and all was fine.. then I went to linux... I did :
Code:
apt-cache search apc ups

it gave me this output :
Code:
kakaroto% apt-cache search apc  ups
apcupsd - APC UPS Power Management (daemon)
apcupsd-cgi - APC UPS Power Management (web interface)
apcupsd-doc - APC UPS Power Management (documentation/examples)
collectd - statistics collection daemon
gapcmon - apcupsd monitor GUI
genpower - Monitor UPS and handle line power failures
nut-snmp - A meta SNMP Driver subsystem for the nut - Network UPS Tools
powstatd - Configurable UPS monitoring daemon
texlive-latex-extra - TeX Live: LaTeX supplementary packages
tinysnmp-module-ups - UPS MIB module for TinySNMP

there.. I just did 'apt-get install apcupsd' and I was done, it installed it.. the repo has all the software I need, even the UPS daemon for the APC brand.. with the GUI monitor, etc...
look at this :
Code:
kakaroto% apt-cache show gapcmon
Package: gapcmon
Priority: optional
Section: utils
Installed-Size: 240
Maintainer: Mario Iseli <admin@marioiseli.com>
Architecture: i386
Version: 0.8.5-1
Depends: libatk1.0-0 (>= 1.13.2), libc6 (>= 2.5), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.4.0), libgconf2-4 (>= 2.13.5), libglib2.0-0 (>= 2.12.9), libgtk2.0-0 (>= 2.8.0), liborbit2 (>= 1:2.14.1), libpango1.0-0 (>= 1.14.8), libx11-6, libxcursor1 (>> 1.1.2), libxext6, libxfixes3 (>= 1:4.0.1), libxi6, libxinerama1, libxrandr2, libxrender1
Recommends: apcupsd
Filename: pool/main/g/gapcmon/gapcmon_0.8.5-1_i386.deb
Size: 67190
MD5sum: adb7c30cb6801c39ffc24510411669fd
SHA1: 0698f065b699065fce20ef7d5e4b381c7909bca8
SHA256: 4ec1ff00f0a6fea268c985d65ddb1f75bec3030b8c1e86790d40c6791f21588b
Description: apcupsd monitor GUI
 This tool is extremely useful if you have a lot of un-interruptable power
 supplies. You can add them to a list of devices in gapcmon and it will keep
 the statistics refreshed. It will also help you to see damaged batteries.
 .
  Homepage: <http://gapcmon.sourceforge.net>
Tag: uitoolkit::gtk

you see all the dependencies the monitor needs.. it will all get installed, and it will recomend the apcupsd daemon... I get a description, the homepage, etc... it's all MUCH easier than having to look for it through google or whatever I would need to do if I was on windows...
So... in short, dependencies are not hell, as long as your distro is well chosen (this was on debian, ubuntu probably has the same), and sometimes it's better than windows.. and a program not having its dependencies bundled is a lot better because it saves space and is more reliable (remember the openssl example or the amsn's tcl/tk bundle).

I think that's about it, I've been writing for about an hour, and I'm tired.. I'll leave it at that.. I hope I was helpful for you! don't forget I'm no expert.

and btw, your rambling did make a lot of sense.. now I hope mine does too, lol Smiley

Take care, and keep us informed on what you did Smiley
Logged

KaKaRoTo
H@t Trick
Super Power User
**
Offline Offline

Posts: 340



View Profile
« Reply #5 on: December 04, 2007, 07:10:20 am »

thanks for clarifying a lot for me. And your ramblings make complete sense also.
I would like some clarification though.
The GUIs for installing new apps from a repository (like Xandros Networks or Synaptics, I think) does the same as the apt-get or equivalent?

When these commands install an app and all its dependencies, can they mess up other programs requiring older/newer versions of the same dependency libraries?

Are there any where the CLI or manually editing settings files (I am thinking of autoconf or whatever it is called) for anything is virtually unneeded?

So now I basically just gotta try out a few distros and see which one I like best.
Logged

There's no place like 127.0.0.1!
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9424


View Profile WWW
« Reply #6 on: December 04, 2007, 08:53:38 am »

Hi,
1 - The GUIs (aptitude/synaptics/whatever) probably just call apt-get, it's all the same apt system.
2 - a new version with a newer dependency will not be in the repository if it's not compatible, that's why it's a repository, itmakes sure everything works fine. Install a new version, it will try to upgrade to a newer version of a library, if it can't because something else depends on what was already installed, it will tell you.
3 - usually, it's configured (./configure, autoconf stuff) with all options enabled, if there's a choice to be made, you'll have multiple different packages.. for example, for apache :
Code:
kakaroto% apt-cache search apache2
apache2 - Next generation, scalable, extendable web server
apache2-dbg - Apache debugging symbols
apache2-doc - documentation for apache2
apache2-mpm-event - Event driven model for Apache HTTPD
apache2-mpm-itk - multiuser MPM for Apache 2.2
apache2-mpm-perchild - Transitional package - please remove
apache2-mpm-prefork - Traditional model for Apache HTTPD
apache2-mpm-worker - High speed threaded model for Apache HTTPD
....

so you see there are different models.. event dirven, perchild, prefork, or worker models, so you can choose the one you want, the 'apache2' package is probably a 'fake' package that depends on one of them (the best one chosen by the distro maintainers), so you'll usually just do 'apt-get install apache2' unless you want a different model that the one installed by default.
Logged

KaKaRoTo
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!