Jump to content

  • Log In with Google      Sign In   
  • Create Account

Getting Started with Linux


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
31 replies to this topic

#1 Chad Smith   Members   -  Reputation: 1133

Posted 15 February 2013 - 01:46 AM

Lately I've been interested in dual booting with some Linux distribution and trying out Linux.  Though with all the different Linux distributions out there I wasn't entirely sure where to start.  So I thought I'd ask here as I know their are quite a bit of people here that run Linux.  Though I understand the question I ask is very opinionated and will get me a lot of different answers I still thought it'd be worth to attempt to try to get some opinions on where to start.

 

I don't really have any major requirements or needs that I will be using the OS for, just an OS to spend some time in and using it as a "primary" OS for a little bit (I don't plan on at this time to make it my 100% primary OS, as most of my programming and serious work will take place in Windows).

 

Though here is what I am looking for:

* Easy to install.  I really just don't feel like jumping through a ton of hoops to get it installed

*"Easy" to learn. While I will spend time to get to know it, I am looking for something that won't take a lot of work to find 3rd party software and other tools to use efficiently.

 

I do not know many Linux commands nor have used it's terminal in quite a while so I'd like to learn some of that too.

 

So what are some distributions to check out?  Start out with?  Any getting started guides you'd suggest for me to check out for that distribution?  What to install and use to get started doing some basic C++ Programming (I don't plan to do my major C++ programming under Linux right now until I become proficient in it).

 

Thanks to anyone who can help me!



Sponsor:

#2 Ashaman73   Crossbones+   -  Reputation: 7475

Posted 15 February 2013 - 02:01 AM

You forgot one:

* Easy to get your hardware to run with.

 

Easy to install and learn are most,but once you start to get your hardware component supported (especially videocard) the fun starts.

 

After killing my ubuntu attempt two times after installing the ubuntu supported nvidia driver, I went back to win7 ;-)

 

Btw. check out ubuntu


Edited by Ashaman73, 15 February 2013 - 02:13 AM.


#3 TheKLF99   Members   -  Reputation: 106

Posted 15 February 2013 - 03:16 AM

Hi Chad,

 

As an introduction to Linux I'd highly recommend using Puppy Linux.

 

It's a very easy to use and small linux distro that can boot from live CD (you can also make live USB stick as well with it).

 

It runs all in RAM, but can create a small save space as well on a Windows drive (a 2FS file system file) so you don't need to re-partition your hard drive or install it or anything, just put the CD in the drive and get the CD to boot.

 

By default the system doesn't include the main compilation commands like make, gcc etc but they can be added by just downloading an SFS file and attaching it simply to the system with the boot manager (it's just a case of opening the boot manager up and adding the development file to the list and the n re-booting, nothing too complicated - if you know the basics of Windows you should be able to do that blindfolded!).

 

Quite a few items of software are available for Puppy as PET files, these are pre-compiled and just need installing, very similar to how Windows installs, plus if you download the Lupu version it's based on Ubuntu so can also accept many Ubuntu DEB packages too.

 

The most important thing to remember on Linux is that not everything comes pre-packaged, pre-compiled.  If your a low level programmer in Windows and use stuff like C++ you shouldn't have much difficulty actually getting your head around this.

 

Some items when you download them in Linux you will find they are what is called a "source tar-ball".  These can be quite complicated to use if you don't understand programming, but if you know programming there not that hard - and actually once you've installed a few source packages you soon get the idea...

 

A source package can be really useful as well because it builds the source specifically to work with your machine - this is very advantageous (and if Windows did this it could cure a large number of bugs!).  As you are probably aware there are millions of different combinations of "IBM PC compatibles" out there - some might have an Intel CPU in them, AMD CPU, nVidia GPU, ATi GPU, 3DFX GPU, 2Gb RAM, 4Gb RAM, 32-bit CPU, 64-bit CPU, etc... there is a lot of combinations when building a PC, so by compiling the source package on your PC it builds the binary to work specifically with what ever hardware you have in your machine and utilise whatever technology you've got in there.

 

The only problem with a source package is all the other problems faced with it and how to install it as it's not a standard just run a program and off it goes.

 

To start with when installing a source package you need to ensure you have the development tools included in the Linux distro (thankfully with Puppy that is just download something like lupu_devx_528-4.sfs and then attach it to the boot manager - if your not sure whether the distro has the development tools just open up a terminal window and type make --help and press enter.  If it comes back with make: command not found then you've not got the dev tools installed, if it comes back with a big help screen then your ready to begin.

 

Next stage is to download the tar ball - this is just like a zip/rar archive of all the source code, we don't need to worry about anything that's in there - all we need to do is use the archiver to extract it to a specific directory where we will remember where it is.

 

Then we just need to open up a terminal window and change directory to the spefic download location - e.g. cd /mnt/home/my-program (the handy thing is, if you can't remember the path properly you can always press TAB and it will show you possible auto-complete choices - Windows recently started copying this but it isn't as good).

 

now once your in the program directory there are just three simple commands you need to run....

 

Firstly...

 

./configure (remember the ./ at the beginning this is very important!)

 

This runs the configuration script that builds the program specifically for your computer, based on your hardware, and software installed.  It also checks to make sure if there are any dependencies missing - dependencies are other programs that the program may need to run.  Like for example in windows if you wrote a program that used a DirectX 9.0 library, then to run it on another computer you'd need to install DirectX 9.0 on that machine as well.  Dependencies are the same idea.

 

So if there are any dependencies missing you need to go get them - same as when you view a web page with flash and you've not got flash player installed you need to go get flash player - same idea Flash is just a dependency for that web page.

 

After sorting all the dependencies out - small programs probably won't have that many - if any, larger programs might need many - like GTK+, QT, etc, which also may have their own dependencies your ready to move on to the second command

 

The second command is

 

make (no ./ required here)

 

this builds (or makes) the program, the configure program created makefiles which are specific to the machine that is running them and make uses those makefiles to compile the program - the same way when you compile a program and produce an executable in C++.

 

and the third and final command is

 

make install

 

This installs the program for you, so to install a program from source you just need the following three commands

 

./configure

make

make install

 

and that's it.  It may seem a little bit tricky at first to get your head round building from source but after a few it's not too hard.

 

Now one of the other major differences you may notice in Linux is the file system...

 

Windows has a file system of drives A: drive (floppy), B: drive (second floppy) C: (HDD), D: (CD), etc...

 

Linux doesn't.

 

Linux has one starting point which every drive branches off... the root folder

 

 

/

 

so instead of a c drive or d drive to access these drives they are located in "mount"points.

 

Windows automatically mounts a drive when it's plugged in - so when you plug your USB drive in Windows detects it, and shows it as a new drive.  Then when you want to remove it you need to use safely remove hardware to "unmount" it.

 

Linux however doesn't automatically mount/unmount drives just because they're plugged in.  Years ago Linux needed to have configuration files edited to access new drives, however thankfully now most distros including Puppy auto-detect when a drive is plugged in - BUT they don't automatically mount the disc.  In Puppy when you plug a new drive in you will see a new icon on the desktop for that drive.  To mount it you just click the drive, and it will mount and open up so you can view the files, at this point as well a green dot will appear on the drive icon.  This is to warn you that the drive is now mounted and DO NOT remove the drive without properly unmounting it first (the same as "safely remove hardware" in Windows).  To unmount it just right click on the icon on the desktop and click unmount.  You will notice though Linux unmounts drives a lot faster than Windows and you don't get the unable to unmount message from Linux either (this is because Linux's ability to terminate programs is far superior to Windows) - btw Linux can be a little less unforgiving if you remove a drive without unmounting it first than Windows can.

 

When you mount a drive it is positioned in the folder tree under it's mount point, most mount points are located under

 

/mnt/<device id>

 

(replace <device id> with the device name.

 

so hard drive one might be at

 

/mnt/hda1

 

and usb might be at

 

/mnt/sdb1

 

etc...

 

By default most of the mount points are created in the mnt folder, however you can create the mount points where ever you want as long as there is a folder there for them, but that is getting too complicated.

 

If you go into the drive folder and you find there is no files in there when there should be - this is because the drive probably isn't mounted, check for the green circle on the drive icon.  Sometimes the circle may be other colours like orange or red, this can depend on your icon preferences or it can indicate a problem with either mounting or unmounting  a drive - for example the main drive that has all the linux files will normally show up red as it is the main drive and cannot be unmounted - which would be the same for Windows - can you imagine disconnecting your C: drive in Windows whilst the computer is switched on? yeah exactly - although I have seen one computer that you can do that too - a Silicon Graphix which one of the lads doing his PhD had in one of the computer rooms when I was at University, he demonstrated it to us and it was amazing - and that was back in 1999.

 

One final thing I forgot to explain as well was - above you may be wondering why ./ was so important in the ./configure command and yet wasn't needed with the make command...

 

This is because of the way Linux deals with commands which is again different to Windows... in Windows when you run a program Windows/MS-DOS looks first in the current directory for the program, and then the path for the command, however Linux only looks at the path variable for the executable, unless it's location is specifically stated  at the beginning of the command (./) the configure program is located within the current directory which isn't in the path so we have to tell Linux look in the current directory for the command, however the make command is normally located in either /bin or /usr/bin which is in the path so we don't need to tell Linux where to look for that.  Of course this does add an extra layer of security to Linux, as in Windows you could create a folder and put for example a file called deltree.exe in there, as long as the person is in that folder and types deltree they will run that program within that folder, and not the official deltree command that is located in C:\windows\command which depending on what that other executable does could lead to interesting results, possibly even virus infection, where as Linux would have ignored it and gone straight for the official command in the path.  At Uni a common trick if someone left themselves logged in was to do something like this - the trick was to create a fake "menu.bat" file with the one command logout in it, or if you were feeling nice a message like "echo 'Remember to logout next time'" and the first menu file the computer came across was the fake menu.bat not the one on the path (which was on Z drive!), of course if someone did put logout into the file then you'd be logged out the minute you logged in and it would take one of the IT technicians to remove the file for you, of course if that had been Linux it wouldn't have been possible because you'd have to change the startup command from menu to ./menu which you only the IT tech's could do.

 

Anyway I hope you try out Linux and enjoy playing with it and hope this information helps - sorry if I've gone on too long (I do have Asperger's so am prone to going on too long on something which interests me!)


Edited by TheKLF99, 15 February 2013 - 03:37 AM.


#4 demonkoryu   Members   -  Reputation: 976

Posted 15 February 2013 - 03:38 AM

I recommend Linux Mint (Cinnamon Edition, to be specific). It's Ubuntu-based (i.e. extremely well tested, with a huge userbase and software availability), but it's even more user friendly because it deviates from the debatable Ubuntu "features" like Unity desktop etc.



#5 KingofNoobs   Members   -  Reputation: 301

Posted 15 February 2013 - 04:05 AM

Go with Ubuntu 12.04. You get Steam and the user community is huge. Its *almost* as user friendly as Windows.


Edited by KingofNoobs, 15 February 2013 - 04:05 AM.

I wonder as I wander...

http://www.davesgameoflife.com


#6 Bregma   Crossbones+   -  Reputation: 5133

Posted 15 February 2013 - 06:31 AM

I'd recommend Ubuntu, preferrably 12.10 (the latest version) but 12.04 (the latest "long term support" version) will also do the trick.  It's a commercially-supported OS based on the Linux kernel and GNU runtime and aimed at typical consumers who have no trouble using Microsoft Windows.

 

If you get yourself a bootable image (CD, USB drive), you can boot from that and run "live" off the image for evaluation.  Installing at that point is as easy as clicking on an icon and following the prompts, it should take about 15 minutes if you've compressed your Windows drive first.

 

Finding and installing software is as simple as hitting the 'Windows' key and typing in search terms, then clicking on the results.

 

Ubuntu is the only GNU/Linux-based OS that is supported by Valve, EA, and Unity3D, and has direct inside support from nVidia and Intel for graphics drivers.  There are a number of hobby projects distros that leverage the advantages that Ubuntu works for but offer a different desktop GUI shell (basic user interface).

 

Disclaimer:  I may be considered a paid shill in some quarters.


Stephen M. Webb
Professional Free Software Developer

#7 TheChubu   Crossbones+   -  Reputation: 4352

Posted 15 February 2013 - 07:59 AM

Besides already mentioned options. Debian! Easy to install and has a massive repository of packages.


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#8 nife87   Members   -  Reputation: 516

Posted 15 February 2013 - 09:24 AM

Besides already mentioned options. Debian! Easy to install and has a massive repository of packages.

 

Yes, Debian is great. Unfortunately, to be just in neighbourhood of somewhat updated (kernel-wise, especially), you have to install the "testing" version, which is not for newcomers.

 

That said, I would also recommend Ubuntu BUT with a different desktop enviroment than Unity (the default). My preferred choice is currently Xubuntu 12.10.

For easy transition, Xubuntu (comes with XFCE) is very similar to what regular users call a normal desktop enviroment (elderly Windows) and use fewer resources than Ubuntu or Kubuntu (fancy KDE desktop enviroment, although not my taste).

 

I started years ago out with a mixture of *buntu/Debian, openSUSE, Fedora (also a good choice) and sometimes Arch, and I have yet to see something as well supported and updated as *buntu, although IMHO I would call the default distro/DE since 12.04 experimental (yes, I am looking at you, Unity).

Yes, you have to fiddle a little around in the console from time to time, but mostly things work out of the box. And anyways, once you get used to the console/bash and the  "basic inner workings" of Linux, it is really not that big a deal and makes many things easier than with GUI's.

Also, be aware of how well supported your peripheral hardware (anything connected via usb) is, because the cheaper (unsupported) and primarily-Windows-supported stuff can easily take some time and skill (www and the large userbase is good here) to setup.



#9 demonkoryu   Members   -  Reputation: 976

Posted 15 February 2013 - 12:02 PM

Linux Mint is Ubuntu is Debian...



#10 Sik_the_hedgehog   Crossbones+   -  Reputation: 1747

Posted 15 February 2013 - 12:15 PM

I do not know many Linux commands nor have used it's terminal in quite a while so I'd like to learn some of that too.

Just to make it clear: for a lot of stuff you don't need the terminal (well, in the popular distros at least). I lost the count of times when somebody asks for help and everybody replies with terminal commands when it isn't needed at all. Probably it's easier to copypaste some cryptic text without giving any explanation than to guide somebody through the GUI.

 

And yeah, beware of hardware support, that's Linux's biggest issue. Since it isn't the defacto standard OS *coughwindowscough* driver support is less than stellar for anything not following a standard protocol. The situation is getting better over time but it's still horrible, so make sure your hardware is well supported (when it comes to video cards Nvidia is pretty much the only sane option on Linux, by the way).


Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

#11 nife87   Members   -  Reputation: 516

Posted 15 February 2013 - 02:27 PM

Linux Mint is Ubuntu is Debian...

They are built on top of each other, yes, but several distros built upon Debian, including Mint and Ubuntu, are way better updated, system-wise, than Debian. This is due to the reputation of stability (or goal, cannot remember for sure, but it sure is stable) that Debian must maintain, which is why the "current", stable release is still dwindling around kernel 2.6 (and how many years old?) instead of the most recent 3.5 (which "stable" versions of Ubuntu and Mint are running).

 

So I would not exactly mention them by an "is-a" relationship, but more an "originally-a".



#12 SimonForsman   Crossbones+   -  Reputation: 6109

Posted 15 February 2013 - 02:54 PM


I do not know many Linux commands nor have used it's terminal in quite a while so I'd like to learn some of that too.

Just to make it clear: for a lot of stuff you don't need the terminal (well, in the popular distros at least). I lost the count of times when somebody asks for help and everybody replies with terminal commands when it isn't needed at all. Probably it's easier to copypaste some cryptic text without giving any explanation than to guide somebody through the GUI.


This is indeed the case, guiding someone through a GUI on the internet where people use different languages in their OS is a challenge, doing it when people may not even use the same desktop enviroment as you can get really really hard, The shell is the same regardless of what language the user has and it is similar across related distributions (most shell commands that work with debian will work in Ubuntu and Mint aswell even though the 3 distros have vastly different GUIs in their default configuration)
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#13 Sik_the_hedgehog   Crossbones+   -  Reputation: 1747

Posted 15 February 2013 - 02:57 PM

Yeah, the problem is that then users are left with the impression that to do pretty much anything beyond the basics (or even that in some cases!) you are required to use the terminal and thereby classify Linux as being "too hard" because they aren't willing to learn to do all that through the terminal (and they don't need to, when you could just use the GUI).


Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

#14 Bregma   Crossbones+   -  Reputation: 5133

Posted 15 February 2013 - 03:22 PM

That said, I would also recommend Ubuntu BUT with a different desktop enviroment than Unity (the default).

Any particular reason you would recommend a beginner against an interface designed for non-experts, or is this just the same religious issue that causes consternation about Microsoft Windows 8?


Stephen M. Webb
Professional Free Software Developer

#15 Net Gnome   Members   -  Reputation: 769

Posted 15 February 2013 - 04:46 PM

If you want to try Linux. I recommend stock ubuntu 12.04 LTS if you want something basically guaranteed stable, or you have older hardware. This version also has unity 2d pre-installed, which is great for older hardware. It behaves similar to unity 3d, but its much much much faster.

 

If you want some of the newer web-app integration features try 12.10 32-bit as well. By now, its fairly stable, so its just whether you want the new features of 12.10 over 12.04. And the unity desktop has improved in performance a bit as well in 12.10. 12.10 does not include unity 2d by default, but i believe you can install it via the software center.

 

64-bit ubuntu vs 32-bit ubuntu: go 32-bit if you are new. 32-bit Linux, unlike 32-bit windows, will properly address memory ranges greater than 32-bits, so that 8GB of RAM you have, can get addressed just fine. Additionally, you will have less potential compatibility issues as more apps and drivers are written for 32-bit linux over 64-bit linux. This doesnt mean that 64-bit linux doesnt work well, its just that you should know how to go about getting multi-arch packages if you run into compat issues, and therefore isnt a wise linux newbie option.

 

After you're well acquainted with linux and still want to work in the ubuntu realm, go Xubuntu. Its Xfce desktop is higher performance, less resource intensive, and has compatibility with gnome and KDE based app architectures if needed. Generally, avoid mint like the plague. While i'm not a huge fan of unity, i'm not a fan of Cinnamon. I found it a bit glitchier and generally slower than default ubuntu as well, but that was my experience, yours may be different. I also havent tried MATE yet... so who knows, i may like that...

 

Kubuntu & Lubuntu. If you're a die hard KDE fan, Kubuntu may be your thing. I havent played with it much, but it is a different beast. If you switch to it from regular ubuntu, you'll have the need for some readjustment. Lubuntu is basically the ubuntu you get for old hardware or when you want the least resource intensive desktop possible: LXDE. Its damn fast, but you get that at a price (looks). If you have an netbook or an old desktop, this will bring it back to life guaranteed. It does what it does, and does it well. Lubuntu is also the only ubuntu i've tested in a VM, in which it never needed the special virtual drivers because it was that fast by default.

 

Ubuntu pretty scale (high-to-low): Kubuntu, Ubuntu, Mint, Xubuntu, Lubuntu

Ubuntu performance scale (high-to-low): Lubuntu, Xubuntu, Ubuntu, Kubuntu (source ubuntu 13.04 testing, gnome 2x was not tested so i have nothing comparable to Mint)


Edited by Net Gnome, 15 February 2013 - 05:12 PM.


#16 Sik_the_hedgehog   Crossbones+   -  Reputation: 1747

Posted 15 February 2013 - 04:54 PM

That said, I would also recommend Ubuntu BUT with a different desktop enviroment than Unity (the default).

Any particular reason you would recommend a beginner against an interface designed for non-experts, or is this just the same religious issue that causes consternation about Microsoft Windows 8?

Metro is still definitely better than Unity from what I know. The issues with Metro are mainly the fact it's a different UI paradigm, with Unity it's that and also the shell doing stupid things (sometimes bugs, sometimes intentionally). The former can be excused, the latter can't. This is pretty much specific to Unity, all other shells are just fine (and that's taking into account there are things where they get wildly different).


Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

#17 Chad Smith   Members   -  Reputation: 1133

Posted 15 February 2013 - 05:47 PM

Thanks everyone for the replies.  It looks like Ubuntu is the one most people seem to recommend right now.  I'll look into more and see if I like Unity.

 

I actually meant to post my hardware in my OP as I knew that'd also be important but forgot too.

 

Hardware Specs:

Intel i7-3610QM

NVdia GeForce GTX 660m

8gb of DDRIII RAM

 

Thanks everyone for the posts.  I also can take any more recommendations as I wouldn't mind switching or trying out another version of a different distro if I see it is for me.  I do plan to later on, once I get more familiar with it, support it in some of my projects.

 

I myself do run Windows primarily though have found myself to be more of a OSX fan actually though sadly don't get to run it that much since I no longer own a Mac Laptop at this time.  Though learning new OS/s haven't really been a bother for me.  I just didn't want to jump through hoops trying to get everything installed and working right on the initial install.



#18 Bregma   Crossbones+   -  Reputation: 5133

Posted 15 February 2013 - 06:32 PM

Metro is still definitely better than Unity from what I know. The issues with Metro are mainly the fact it's a different UI paradigm, with Unity it's that and also the shell doing stupid things (sometimes bugs, sometimes intentionally). The former can be excused, the latter can't. This is pretty much specific to Unity, all other shells are just fine (and that's taking into account there are things where they get wildly different).

 

That's still pretty broad, vague, and non-specific.  Have you discussed any of the specific design faults or deliberate bugs with the Unity devs?


Stephen M. Webb
Professional Free Software Developer

#19 TheChubu   Crossbones+   -  Reputation: 4352

Posted 15 February 2013 - 07:52 PM

Besides already mentioned options. Debian! Easy to install and has a massive repository of packages.

 

Yes, Debian is great. Unfortunately, to be just in neighbourhood of somewhat updated (kernel-wise, especially), you have to install the "testing" version, which is not for newcomers.

The "testing" name might be intimidating but Debian testing is usually around the ballpark of other distros :D (probably even more stable than other distros, I've seen Arch and Mint comparing themselves with Debian sid) Is just that they're very (very!) strict about what they call "stable".


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#20 wintertime   Members   -  Reputation: 1712

Posted 16 February 2013 - 11:49 AM

Yeah I think overobsession with having a "stable" version is not needed for most open source programs, as it most likely just means old version without the newest bugfixes. The bleeding edge svn version would then often be more stable (possibly minus the one new bug where you then just revert to second newest version).

 

Can someone explain a bit more detailed what the real difference between all these many desktops is besides fancy looks? Are there incompatibilities when you use the "wrong" desktop?






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS