Participation in open source development also gives the programmer an opportunity
to give back to the open source community, or even a larger audience, all computer users.
Mozilla’s Firefox, for instance, is such a success that a contribution to its development is
truly a contribution to much of humanity.
566
◾
Linux with Operating System Concepts
Contributions are not only provided by software developers. There are a lot of open
source programmers who program for a hobby and not as part of their job. Their motiva-
tions may be similar to those who want to further their career: learning, working with
other developers, producing something useful. But in their case, the impact may be more
of a personal nature over improving their career.
Contributions are not limited to programming. For those who are not programmers,
software testing is also an avenue of contribution. Most open source software consists of
very complex programs. Testing is a crucial aspect of software development and it is typical
that testers are not the same group as the developers. Testing can be performed at differ-
ent levels. Software testers commonly run the software on a number of test-cases, that is,
groups of input. They then compare the output to the expectations and write up reports
where the output diverges from expectation. In other cases though, testers are just users
who compile lists of problems that they detect when using the software. For instance, if the
software crashes when opening a file or if a particular feature operates too slowly, these
cases are noted and sent back to the developers. Aside from testing, there is also a need for
documentation writing.
The open source ideology has extended beyond software development to other
community-involved pursuits. Wikipedia is one of the best examples of this. The online ency-
clopedia receives contributions from the common person who wants to share knowledge.
Unlike open source software that requires some expertise as a programmer, Wikipedia only
requires knowledge of a particular topic and the willingness to contribute. With Wikimedia,
knowledge-based contributions extend to other media, namely, images (whether drawings or
photographic). We also see artists sharing their products through the Internet using mecha-
nisms such as Myspace, Facebook, and other open forums and social media.
13.9 CHAPTER REVIEW
Concepts and terms introduced in this chapter:
• Digital signature—a binary file included in software packages to ensure the integrity
of the software product. If this signature is not available in the installation package,
software like rpm might report this as a warning or error.
• Free software foundation—a movement by programmers headed by Richard Stallman
who felt that software should be made freely available both in cost and in open source
format.
• GPL—GNU’s General Public License, created by Richard Stallman for the open source
community so that software produced by the community could remain free and open.
• Open source initiative—the idea that people can freely contribute to produce and
support software that is both reliable and highly usable. People from all over the
world contribute time and effort to the open source community.
• Open source software—software produced by the open source community and made
available both for free and in source code format (also available for free in executable
format).
Software Installation and Maintenance
◾
567
• Package dependency—software libraries required to complete the installation of a
given piece of software. If the dependencies are not met by already-installed software,
then the new piece of software will not be installed correctly (or at all). Some software
will locate these dependencies and automatically install the missing libraries for you
(e.g., yum) while others require that you perform these tasks (e.g., rpm).
• Package manager—a program that helps facilitate the installation, upgrading and
removal of software with little effort on the user’s part. These include command-
line programs like yum and apt-get, text-based menu-driven programs like aptitude,
and GUI programs like the Add/Remove Software tool in Red Hat or the Ubuntu
Software Center.
• Package repository—a website storing software packages that can be installed either
by hand through a package manager like rpm or automatically through a package
manager like yum.
• Red Hat Add/Remove Software—GUI-based software program that allows you to
find and install, update, or remove software in Red Hat Linux.
• Software package—a bundle of the files necessary to perform the installation of
some software package onto a computer. The package will either be in source code
format, coupled with the scripts needed to compile and install the software, or will
be already-compiled executable programs, coupled with an installation program to
move files to their appropriate locations.
• Software update/upgrade—upgrading already-installed software by downloading
new versions of some of (or all of) the files that the software uses to run. An update
usually entails adding patched software to fix known problems like bugs and security
holes. An upgrade installs a new version of the software that may have new features.
• Source code—the program code in the originally written language such as C, C
++
,
Java, or Ada. In such a form, the program cannot be executed but it can be modified.
Source code must be compiled into an executable form before it can be used on a
computer. Software developers work on the source code while most users typically
only interact with the executable code.
• Sourceforge—a website storing thousands of software packages in both source code
and executable forms.
• Synaptic Package Manager—a GUI-based software program to easily install, upgrade,
and remove software packages for Debian Linux.
• Ubuntu Software Center—a GUI-based software program to easily install, upgrade,
and remove software packages for Ubuntu Linux.
• Version—a specific release of some software package, identified by a naming and
numbering scheme. Many software titles have major and minor releases that might
be denoted with two numbers, separated by a period as in
sometitle
.5.3, meaning the
5th major version and the third minor release of the 5th major version.
568
◾
Linux with Operating System Concepts
Linux commands and files covered in this chapter:
• apt—an umbrella term for the apt command-line package manager tools for Debian
Linux.
• apt-get—the portion of apt used to download and install dkpg packages.
• aptitude—a text-based but menu-driven version of apt.
• configure—a script written using Linux instructions to generate a makefile as part of
the process of installing open source software.
• dpkg—the Debian package manager program that operates on dpkg files. This is a
more primitive tool that does not perform dependency handling unlike apt.
• gcc—the GNU’s C/C
++
compiler that is a requisite program for installing most open
source software.
• install—similar to mv but allows you to change a program’s permissions before mov-
ing the program.
• make—a command to execute the makefile script that is in charge of compiling large
pieces of open source software.
• makefile—the script called upon by the make command to compile and install open
source software. Many makefiles will come with sections responding to commands
such as
make
,
make all
,
make clean
,
make install
, and
make tar
. Some
pieces of open source software do not come with a makefile, requiring that you run
the configure script first.
• make all—typically, this command handles all of the parts of the make operation
(make clean, make, make install, and possibly make tar).
• make clean—when a make command fails, it is best to clean up any temporary or
Do'stlaringiz bilan baham: |