Linux.com

Home Linux Community Community Blogs

Community Blogs



NEWB's adventure's in Linux From Scratch

 Hi,

 Took the morning off a bit put off by my most recent foul-up. I've got an issue dealing with permissions installing Perl.... I've had a night to think about it and I believe my first step is to Check my command line entries thoroughly... ??? 

   Since I've turned the computer off for the night, I must get back into the LFS build environment. (stages stop/resume.txt) searched on the LFS site. 

 

Maybe Roy Rodger's could teach us all something?

 

I believe that we all lose our cool at one time or another. Myself included, I get aggravated too. If linux is truely to gain a strong foothold on the Desktop then IRC support channels must learn from ROY RODGERS! If you have nothing good to say then don't say don't say anything at all, and I've never met a person I didn't like. Quit with the nastiness~~~!!! for heavens sake. If youre annoyed at someone and you're in a support channel giving support, then just leave and come back when your in better frame of mind or don't bother with those channels if they annoy you that much.

I don't even consider myself in the Windows lay person framework anymore because I'm willing to get my proverbial hands dirty and try to figure out what makes Linux tick. Most Windows users just want click through and it works no more tinkering. It just works.

 

Slackware Linux Tip-of-the-day: The alias command

The alias command allows you to setup a one line command to be run under an alias in bash. A simple example is : 

 

  • alias=ls, this allows you to invoke the ls command by typing dir (this can be useful for windows users). 

 

The alias command can be invoked within the command line, within a script or as part of your .bashrc file.

 The limitation is that the alias only exists within the shell that it was invoked in, if you run it as a command in a terminal the alias will be removed when the terminal closes. the exception is when you add it to you .bashrc file, when it is loaded into this file the alias will be present in all future bash terminal sessions. 

The site http://www.linfo.org/alias.html hasmore information and some examples to help you get comfortable with the functionality.

The base files is different for each shell type, but since bash is the most used I am covering it here.

 

the need for speed ? maybe ?

 

 After messing around with gnome 2.26 and gnome shell, I am very torn between gnome and lxde. Gnome seems to be getting very heavy in the dependecies. Creates quite a large setup. Not sure if this is really required for most of what people do nowadays and it was also pretty slow on both ubuntu and Fedora. Think I might just go back to the lightweight style DE/WM's. I do like the speed.

 

NEWB's adventure's in Linux From Scratch

 I'm still at it,

    This morning I continued with my install, eventually I got back to "expect build" and guess what? down near the bottom of the page, there's a comment about test suite failures are not considered critical at this point!!!. I just spent the better part of 2 days trying to track down the error only to give up and , then rebuild up to expect with no errors and I didn't need too :(( 

5.8 adujusting the toolchain:  Also they ask you to visually "check" the "specs" file and don't tell you where to look???. I was able to Google it, as I got only (just type what's in the box) in the IRC support channel. Google: to locate the specs file {gcc -print-libgcc-file-name} . Everything was fine after I looked.

Some of us are newb's and don't know our way around the system that well yet, we are primarily installing LFS for the learning experience.  

  What's being reinforced on a daily basis:

1 . Always, check the command line before pressing , "enter"

2.  Don't forget the "PATCH" as I have done several times already.

3. Check the Makefile, to be sure ./configure properly set it up.

4.  Read the whole section before starting work on that section. (I've removed the source and build directories as soon as I installed only to find that they needed the header files or weren't done with those quite yet.) 

 

LazyMan

Creating a program for a lazy people as me (it could be YOU :) ).
 
Details>
A program that moves and categories your favourite flv clips from Firefox using the cache from /tmp/
 
Features>
  • List of flv files where one can choose the file that wants to be saved/played or both.
  • Starts the selected flv in a video player choosen in the main configuration.
    The player can start with selected proportions, fullscreen and every options which can be simular i.e standard in few video players as VLC, MPlayer. Totem Player, Xine etc.
  • After the video ends a dialog pops out asking to save the clip.
    The save dialog has an Entry for the name of the file, a combo for choosing the video category (categories can be managed, they represent a folders).
    Afterwards the video  is moved from /tmp/, a progress bar is shown while the task is working, than a message pops or a notification using libnotification on Gnome, telling job is complete.
Currently I made a Bash version using Zenity as a GUI interface, it's planned to be rebuild with Python and GTK as GUI interface.
 
Parts list>
FLV Clips List Window
  • FLV preview
  • Copy full path
  • Safe after play Checkbox 
  • Move all
  • Move all (and play)
Play Video Window
  • Fullscreen Checkbox (on/off)
  • Advanced controls
Move Window
  • A list of all the selected videos in a two column table, column 1 the video name, column 2 the category (combo). Option to name the files the same with a variable at the end #.
  • Message that tells the current moving file
  • Progress bar shows it's completion status
  • a list queue that removes each completed file and focus on the current file.
  • Notification using gnome libnotification after move process is complete.
That's it for LazyMan 1,
in LazyMan 2:
  • convert options
  • tv shows manager
  • backup system
If anybody wants the current program send me  an email :).
 

NEWB's adventure's in Linux From Scratch

  Just call me a glutton for punishment,

        :) I've been working hard all day, finally I got past the issues with gcc and glibc and and got a little bit cocky, and was blowing through the additional files when reality came crashing down. I was almost to the end of the utilities when I realized that I was not checking the patches in the source directory against the ones listed in the manual, there were extra patches that were not mentioned !!!!!!!!!!!!!!!!!!!! holy moley. :(

          I backed up and since I'd already removed source and build directories I figured that the new installs would just stomp on the first installs . Well I've gotten as far as Perl 5.28.1 and I'm running into file permission issues. Well I've been at this all day time to quit for now.  Seems like I'm an accident waiting to happen.............. 

 

Thoughts on Package Managers: Source vs. Binary

One of the things I love about Linux distros as opposed to Windows/MacOS is that we have package managers. On Windows, every piece of software comes with its own "package manager," and even when you uninstall them, they still do a lousy job cleaning up after themselves. Macs have "packages," but not much of a manager. Linux, though, has a wide variety of software that makes it easy to manage your installed programs. This is a series where I describe some of the attributes of package managers, and what I think should be in the Perfect Package Manager.

Today, I'm discussing one of the biggest differentiations between package managers: source packages vs. binary packages. Source package include a tarball of the application's source code, and instructions on building it. When you install the package, it builds and compiles everything on-site, then installs. Binary packages have everything already built, and installing the package just takes everything out of it.

When I first read about source packaging systems, I thought, "Wow! This sounds really great!" By building on source, you can make sure that everything is configured properly for your system, and exact more customization upon the package. It also makes Richard M. Stallman happy, what with his constant ranting about the importance of source code. (Note: I'm not making fun of RMS here. That comes later.)

After I installed and ran an upgrade of GoboLinux, though, I took a more realistic approach to source packages. Namely, installing a binary package compared to installing a source package is like using a computer vs. using a computer while you and the mouse and keyboard are immersed in a vat of molasses. In other words, it's slow. One person referred to Gentoo having a screensaver built in on the command line: GCC.

Having said that, binary packages have the immediate benefit of installing quickly. On my Arch Linux system, the 'Install' step of installing a package takes less than a second. Sometimes I don't even see the hash marks of the progress bar appear on my screen.

 

FOSS and the Free Market

One of the things I've heard people say about free/open source software like Linux (fortunately, not in person) is that it is communist/socialist. Admittedly, RMS linking to every left-wing cause in the world on his homepage doesn't help. In reality, though, free/open source software is the best way that software can be handled in a market economy.

There are two crucial terms here - excludable and rival in consumption. If a good is excludable, it is possible to stop people who have not paid from the good from using it or enjoying its benefits. For example, computers are excludable - if you sell computers, people can't use your computers for themselves without buying them from you. An example of a non-excludable good is a fireworks show - anyone within a few miles can watch and enjoy the fireworks.

If a good is rival in consumption (an more common version of this term is "rival" or "rivalrous", but "rival in consumption" is the way I learned it), one person using the good impairs or prevents others from using it simultaneously. For example, food is rival in consumption. If I eat a sandwich, you can't eat the sandwich, and if you can, it will be in a form that you will not want to eat it in. FM radio is not rival in consumption. Everyone in an eight-mile radius could be listening to the same station, and they would all listen to it the exact same as if they were the only one.

These categories can and do overlap - most goods that are one fall into the other. Fireworks shows and FM radio, two of my examples, are both non-excludable and non-rival - known as public goods - whereas my other two examples, computers and sandwiches, are both excludable and rival in consumption - private goods. It is possible for there to be excludable but non-rival goods (club goods - i.e. cable TV), and non-exclusive goods that are rival in consumption (common goods - i.e. fish in a lake).

Now that I've given everyone a lesson straight out of Economics 101, you may be wondering what the point is. The point is that software is merely computer data. Computer data is neither excludable - I can put a file on the Internet, and everyone in the world could download a copy while I still had mine - nor rival in consumption - two copies of the same data can be used at the same time. This means that computer data like software cannot be effectively sold for a profit.

This results in a situation known as a market failure. This is a situation where the free market, even in idealized conditions, cannot effectively determine a good result. There are two ways you can go with this situation.

The first way is to try and make software excludable and rival in consumption. This is done by taking software out of the sphere of goods and making it a service - i.e. we rent the license key to you, and you can use the software. The problem is, this doesn't always work. Computer data, despite being a public good, is still a good, so it is not very hard to pirate software. Repackaging goods as services is an example of exploiting the free market, and results in high prices, antitrust behavior, and an undesirable market outcome. It doesn't stop the market failure - just gives the people who created the software a bit more money for a while.

The other way is to not try and sell software itself for a profit. This is what free/open source software does. There's no monetary incentive to produce public goods, so we instead make it a community incentive and a volunteer effort. Because of this, we don't have to waste energy fighting an uphill battle against the market forces that make it hard or impossible to profit from software, and can instead focus on making our software the best it can be.

In addition, it's still possible to make money off it: as the Wikipedia article on public goods states, "since most of the benefit of a lighthouse accrues to ships using particular ports, lighthouse maintenance fees can often profitably be bundled with port fees." In other words, we can make money off incidental goods, like computers, or after real services like support, instead of the fake services of license keys.

In conclusion, the way the free market works makes it impractical to sell software itself. By taking software out of the market and into the hands of open source developers, we can let the market work the way it's supposed to.

 

NEWB's adventure's in Linux From Scratch

Well I'm back,

Yes, again.. already....:) I've basically used the first two days of this restart making small errors one after another. I made a small error during the install of expect  that cost me to remove the entire tools directory. Then when I tried to do it again I made a costly error that after installing glibc moving files around couldn't be fixed and as Im installing gcc for the 4 time in 2 days, I realized that binutils was the files that were screwed up when I was moving files in glibc. It seems that these first few files have alot in common.

The only Liberty I've taken is installing ccache as a gcc cache , otherwise everything is stock configure. As the manual points out , binutils, gcc,and glibc are better off not being "optimized" at all. basic configure. I'm planning on continuing till I get to expect complete. Leave the rest for another day.

 

 

NEWB's adventure's in Linux From Scratch

 Well,

 I'm back again on the same day figured out a way during playing with compiling kernels and it worked well there so I thought you'd like to know about it for LFS use. It's called "ccache" and I installed it by passing the --prefix=/tools option during ./configure and it installed in the /tools/bin dir.

  I impressed myself :))

I  got so brave that I tried some options while compiling binutils and gcc and glibc although not advised. Guess what?  while running "make test" on expect I got wierd errors .  Couldn't get a quick answer on the IRC lfs-support chat .I've removed all the contents of my tools directory.  Now , I'm starting over. All along I've removed my source and build directories so that was no issue. 

 ccache installed easily and I've started with binutils . 

 
Page 111 of 148

Upcoming Linux Foundation Courses

  1. LFS220 Linux System Administration
    05 Jan » 08 Jan - Virtual
    Details
  2. LFD331 Developing Linux Device Drivers
    12 Jan » 16 Jan - Virtual
    Details
  3. LFS520 OpenStack Cloud Architecture and Deployment
    12 Jan » 15 Jan - Virtual
    Details

View All Upcoming Courses


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board