Ubuntu Unleashed 2014 Edition: Covering 13.10 and 14.04


Ubuntu Unleashed 2014 Edition is filled with unique and advanced information for everyone who wants to make the most of the Linux-based Ubuntu operating system. This new edition has been thoroughly revised and updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 13.10 and the forthcoming Ubuntu 14.04.

Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 13.10/14.04 installation, configuration, productivity, ...

See more details below
BN.com price
(Save 15%)$49.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (3) from $33.33   
  • Used (3) from $33.33   
Ubuntu Unleashed 2014 Edition: Covering 13.10 and 14.04

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
BN.com price
(Save 42%)$39.99 List Price


Ubuntu Unleashed 2014 Edition is filled with unique and advanced information for everyone who wants to make the most of the Linux-based Ubuntu operating system. This new edition has been thoroughly revised and updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 13.10 and the forthcoming Ubuntu 14.04.

Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 13.10/14.04 installation, configuration, productivity, multimedia, development, system administration, server operations, networking, virtualization, security, DevOps, and more—including intermediate-to-advanced techniques you won’t find in any other book.

Helmke presents up-to-the-minute introductions to Ubuntu’s key productivity and Web development tools, programming languages, hardware support, and more. You’ll find new or improved coverage of Ubuntu’s Unity interface, various types of servers, software repositories, database options, virtualization and cloud services, development tools, monitoring, troubleshooting, Ubuntu’s push into mobile and other touch screen devices, and much more.

Matthew Helmke served from 2006 to 2011 on the Ubuntu Forum Council, providing leadership and oversight of the Ubuntu Forums, and spent two years on the Ubuntu regional membership approval board for Europe, the Middle East, and Africa. He has written about Ubuntu for several magazines and websites and is the lead author of The Official Ubuntu Book. He works for Pearson Education writing technical documentation for educational
testing software.

Detailed information on how to…

  • Configure and customize the Unity desktop
  • Get started with multimedia and productivity applications, including LibreOffice
  • Manage Linux services, users, and software packages
  • Administer and run Ubuntu from the command line
  • Automate tasks and use shell scripting
  • Provide secure remote access and configure a secure VPN
  • Manage kernels and modules
  • Administer file, print, email, proxy, LDAP, DNS, and HTTP servers (Apache, Nginx, or alternatives)
  • Learn about new options for managing large numbers of servers
  • Work with databases (both SQL and the newest NoSQL alternatives)
  • Get started with virtualization
  • Build a private cloud with Juju and Charms
  • Learn the basics about popular programming languages including Python, PHP, Perl, and new
    alternatives such as Go and Rust
  • Learn about Ubuntu’s work toward usability on touch-screen and phone devices

Ubuntu 13.10 on DVD

DVD includes the full Ubuntu 13.10 distribution for Intel x86 computers as well as the complete LibreOffice office suite and hundreds of additional programs and utilities.

Free Kick Start Chapter!

Purchase this book and receive a free Ubuntu 14.04 Kick Start chapter after Ubuntu 14.04 is released. See inside back cover for details

Read More Show Less

Product Details

  • ISBN-13: 9780672336935
  • Publisher: Sams
  • Publication date: 12/9/2013
  • Series: Unleashed Series
  • Edition number: 9
  • Pages: 900
  • Sales rank: 410,789
  • Product dimensions: 7.00 (w) x 9.00 (h) x 2.10 (d)

Meet the Author

Matthew Helmke is an active member of the Ubuntu community. He served from 2006 to 2011 on the Ubuntu Forum Council, providing leadership and oversight of the Ubuntu Forums (www.ubuntuforums.org), and spent two years on the Ubuntu regional membership approval board for Europe, the Middle East, and Africa. He has written about Ubuntu for several magazines and websites, is a lead author of The Official Ubuntu Book, and coauthored The VMware Cookbook. He works as a senior technical writer for Pearson North America’s Assessment and Information division, documenting assessment software. Matthew first used Unix in 1987 while studying LISP on a Vax at the university. He has run a business using only free and open source software, has consulted, and has a master’s degree in Information Resources and Library Science from the University of Arizona. You can find out more about Matthew at matthewhelmke.com or drop him a line with errata or suggestions at matthew@matthewhelmke.com.

Andrew Hudson is a freelance journalist who specializes in writing about Linux. He has significant experience in Red Hat and Debian-based Linux distributions and deployments and can often be found sitting at his keyboard tweaking various settings and config files just for the hell of it. He lives in Wiltshire, which is a county of England, along with his wife, Bernice, and their son, John. Andrew does not like Emacs. He can be reached at andy.hudson@gmail.com.

Paul Hudson is a recognized expert in open-source technologies. He is also a professional developer and full-time journalist for Future Publishing. His articles have appeared in MacFormat, PC Answers, PC Format, PC Plus, and Linux Format. Paul is passionate about free software in all its forms and uses a mix of Linux and BSD to power his desktops and servers. Paul likes Emacs. Paul can be contacted through http://hudzilla.org.

Read More Show Less

Table of Contents

Introduction 1

Licensing 2

Who This Book Is For 3

Those Wanting to Become Intermediate or Advanced Users 3

Sysadmins, Programmers, and DevOps 4

What This Book Contains 5

Conventions Used in This Book 6

Part I Getting Started

1 Installing Ubuntu and Post-Installation Configuration 9

Before You Begin the Installation 9

Researching Your Hardware Specifications 10

Installation Options 10

32-Bit vs 64-Bit Ubuntu 12

Planning Partition Strategies 12

The Boot Loader 13

Installing from DVD or USB Drive 14

Step-by-Step Installation 14

Installing 15

First Update 19

Shutting Down 19

Finding Programs and Files 20

Software Updater 21

The sudo Command 24

Configuring Software Repositories 25

System Settings 27

Detecting and Configuring a Printer 28

Configuring Power Management in Ubuntu 29

Setting the Time and Date 29

Configuring Wireless Networks 31

Troubleshooting Post-Installation Configuration Problems 33

References 34

2 Background Information and Resources 35

What Is Linux? 35

Why Use Linux? 36

What Is Ubuntu? 38

Ubuntu for Business 39

Ubuntu in Your Home 40

Getting the Most from Ubuntu and Linux Documentation 40

Ubuntu Developers and Documentation 42

Websites and Search Engines 42

Web Search Tips 42

Google Is Your Friend 43

Ubuntu Package Listings 43

Commercial Support 44

Documentation 44

Linux Guides 44

Ubuntu 45

Mailing Lists 46

Ubuntu Project Mailing Lists 46

Internet Relay Chat 47

Part II Desktop Ubuntu

3 Working with Unity 49

Foundations and the X Server 49

Basic X Concepts 50

Using X 51

Elements of the xorg.conf File 52

Starting X 57

Using a Display Manager 58

Changing Window Managers 58

Using Unity, a Primer 59

The Desktop 59

Customizing and Configuring Unity 65

Power Shortcuts 66

References 67

4 On the Internet 69

Getting Started with Firefox 70

Checking Out Google Chrome and Chromium 71

Choosing an Email Client 73

Mozilla Thunderbird 73

Evolution 74

Other Mail Clients 75

RSS Readers 76

Firefox 76

Liferea 76

Instant Messaging and Video Conferencing

with Empathy 77

Internet Relay Chat 78

Usenet Newsgroups 80

Ubuntu One Cloud Storage 82

References 82

5 Productivity Applications 83

Introducing LibreOffice 85

Other Office Suites for Ubuntu 87

Working with GNOME Office 87

Working with KOffice 88

Other Useful Productivity Software 89

Working with PDF 89

Working with XML and DocBook 89

Working with LaTeX 91

Productivity Applications Written for Microsoft Windows 91

References 92

6 Multimedia Applications 93

Sound and Music 93

Sound Cards 94

Adjusting Volume 95

Sound Formats 96

Listening to Music 97

Buying Music in the Ubuntu One Music Store 99

Graphics Manipulation 100

The GNU Image Manipulation Program 101

Using Scanners in Ubuntu 103

Working with Graphics Formats 103

Capturing Screen Images 105

Other Graphics Manipulation Options 106

Using Digital Cameras with Ubuntu 106

Handheld Digital Cameras 106

Using Shotwell Photo Manager 107

Burning CDs and DVDs in Ubuntu 107

Creating CDs and DVDs with Brasero 108

Creating CDs from the Command Line 109

Creating DVDs from the Command Line 110

Viewing Video 112

TV and Video Hardware 112

Video Formats 114

Viewing Video in Linux 114

Personal Video Recorders 116

Video Editing 116

References 117

7 Other Ubuntu Interfaces 119

Desktop Environment 120

KDE and Kubuntu 121

Xfce and Xubuntu 122

LXDE and Lubuntu 123

GNOME 3 and Ubuntu GNOME 124

Ubuntu Kylin 125

References 126

8 Games 127

Ubuntu Gaming 127

Installing Proprietary Video Drivers 128

Installing Games in Ubuntu 129

Warsow 130

Scorched 3D 130

Frozen Bubble 131

SuperTux 132

Battle for Wesnoth 132

Frets on Fire 134

FlightGear 134

Speed Dreams 134

Games for Kids 134

Commercial Games 135

Playing Windows Games 136

References 136

Part III System Administration

9 Managing Software 139

Ubuntu Software Center 139

Using Synaptic for Software Management 140

Staying Up-to-Date 142

Working on the Command Line 143

Day-to-Day Usage 144

Finding Software 147

Compiling Software from Source 148

Compiling from a Tarball 148

Compiling from Source from the Ubuntu Repositories 149

Configuration Management 150

dotdee 150

OneConf 151

References 151

10 Command-Line Quickstart 153

What Is the Command Line? 154

Accessing the Command Line 155

Text-Based Console Login 156

Logging Out 157

Logging In and Out from a Remote Computer 157

User Accounts 158

Reading Documentation 160

Using Man Pages 160

Using apropros 160

Using whereis 161

Understanding the Linux File System Hierarchy 161

Essential Commands in /bin and /sbin 162

Configuration Files in /etc 163

User Directories: /home 163

Using the Contents of the /proc Directory to

Interact with the Kernel 164

Working with Shared Data in the /usr Directory 165

Temporary File Storage in the /tmp Directory 166

Accessing Variable Data Files in the /var Directory 166

Navigating the Linux File System 166

Listing the Contents of a Directory with ls 166

Changing Directories with cd 168

Finding Your Current Directory with pwd 169

Working with Permissions 169

Assigning Permissions 170

Directory Permissions 171

Altering File Permissions with chmod 172

File Permissions with chgrp 173

Changing File Permissions with chown 173

Understanding Set User ID and Set Group ID Permissions 173

Working with Files 175

Creating a File with touch 175

Creating a Directory with mkdir 175

Deleting a Directory with rmdir 176

Deleting a File or Directory with rm 177

Moving or Renaming a File with mv 177

Copying a File with cp 178

Displaying the Contents of a File with cat 179

Displaying the Contents of a File with less 179

Using Wildcards and Regular Expressions 179

Working as Root 180

Understanding and Fixing sudo 180

Creating Users 183

Deleting Users 184

Shutting Down the System 184

Rebooting the System 185

Commonly Used Commands and Programs 185

References 186

11 Command-Line Master Class 187

Why Use the Command Line? 188

Using Basic Commands 189

Printing the Contents of a File with cat 190

Changing Directories with cd 191

Changing File Access Permissions with chmod 193

Copying Files with cp 193

Printing Disk Usage with du 194

Finding Files by Searching with find 195

Searches for a String in Input with grep 197

Paging Through Output with less 198

Creating Links Between Files with ln 200

Finding Files from an Index with locate 202

Listing Files in the Current Directory with ls 202

Reading Manual Pages with man 204

Making Directories with mkdir 205

Moving Files with mv 205

Listing Processes with ps 206

Deleting Files and Directories with rm 206

Printing the Last Lines of a File with tail 207

Printing Resource Usage with top 207

Using echo 209

Printing the Location of a Command with which 210

Redirecting Output and Input 210

stdin, stdout, sdterr, and Redirection 211

Comparing Files 212

Finding Differences in Files with diff 213

Finding Similarities in Files with comm 213

Combining Commands 214

Pipes 214

Running One or More Tasks in the Background 216

Combining Commands with Boolean Operators 216

Running Separate Commands in Sequence 217

Using Environment Variables 217

Using Common Text Editors 220

Working with nano 222

Working with vi 222

Working with emacs 223

Working with sed and awk 225

Working with Compressed Files 227

Using Multiple Terminals with byobu 227

Polite System Reset using REISUB 229

Limiting Resource Use 230

References 231

12 Managing Users 233

User Accounts 233

The Super User/Root User 234

User IDs and Group IDs 236

File Permissions 236

Managing Groups 237

Group Listing 237

Group Management Tools 238

Managing Users 240

User Management Tools 240

Adding New Users 242

Monitoring User Activity on the System 246

Managing Passwords 246

System Password Policy 246

The Password File 247

Shadow Passwords 248

Managing Password Security for Users 250

Changing Passwords in a Batch 251

Granting System Administrator Privileges to

Regular Users 251

Temporarily Changing User Identity with the su Command 251

Granting Root Privileges on Occasion: The sudo Command 253

Disk Quotas 256

Implementing Quotas 257

Manually Configuring Quotas 257

Related Ubuntu Commands 258

References 259

13 Automating Tasks and Shell Scripting 261

Scheduling Tasks 261

Using at and batch to Schedule Tasks for Later 261

Using cron to Run Jobs Repeatedly 264

Using rtcwake to Wake Your Computer from

Sleep Automatically 266

Basic Shell Control 268

The Shell Command Line 269

Shell Pattern-Matching Support 270

Redirecting Input and Output 271

Piping Data 272

Background Processing 272

Writing and Executing a Shell Script 273

Running the New Shell Program 274

Storing Shell Scripts for System-wide Access 275

Interpreting Shell Scripts Through Specific Shells 276

Using Variables in Shell Scripts 277

Assigning a Value to a Variable 278

Accessing Variable Values 278

Positional Parameters 278

A Simple Example of a Positional Parameter 279

Using Positional Parameters to Access and Retrieve Variables

from the Command Line 280

Using a Simple Script to Automate Tasks 280

Built-In Variables 282

Special Characters 283

Using Double Quotes to Resolve Variables in Strings

with Embedded Spaces 284

Using Single Quotes to Maintain Unexpanded Variables 284

Using the Backslash as an Escape Character 285

Using the Backtick to Replace a String with Output 286

Comparison of Expressions in pdksh and bash 286

Comparing Expressions with tcsh 291

The for Statement 295

The while Statement 297

The until Statement 298

The repeat Statement (tcsh) 299

The select Statement (pdksh) 299

The shift Statement 300

The if Statement 300

The case Statement 302

The break and exit Statements 304

Using Functions in Shell Scripts 304

References 305

14 The Boot Process 307

Running Services at Boot 307

Beginning the Boot Loading Process 308

Loading the Linux Kernel 309

System Services and Runlevels 310

Runlevel Definitions 310

Booting into the Default Runlevel 311

Understanding init Scripts and the Final Stage of Initialization 311

Controlling Services at Boot with Administrative Tools 312

Changing Runlevels 312

Troubleshooting Runlevel Problems 313

Starting and Stopping Services Manually 314

Using Upstart 315

References 316

15 System-Monitoring Tools 317

Console-Based Monitoring 317

Using the kill Command to Control Processes 319

Using Priority Scheduling and Control 320

Displaying Free and Used Memory with free 323

Disk Space 323

Disk Quotas 324

Checking Log Files 324

Graphical Process and System Management Tools 326

System Monitor 326

Conky 328

Other 333

KDE Process- and System-Monitoring Tools 333

Enterprise Server Monitoring 333

Landscape 334

Other 334

References 334

16 Backing Up 335

Choosing a Backup Strategy 335

Why Data Loss Occurs 336

Assessing Your Backup Needs and Resources 337

Evaluating Backup Strategies 339

Making the Choice 342

Choosing Backup Hardware and Media 342

Removable Storage Media 342

CD-RW and DVD+RW/-RW Drives 343

Network Storage 343

Tape Drive Backup 343

Cloud Storage 344

Using Backup Software 344

tar: The Most Basic Backup Tool 345

The GNOME File Roller 347

The KDE ark Archiving Tool 348

Déjà Dup 348

Back In Time 350

Unison 352

Using the Amanda Backup Application 352

Alternative Backup Software 353

Copying Files 354

Copying Files Using tar 354

Compressing, Encrypting, and Sending tar Streams 355

Copying Files Using cp 355

Copying Files Using mc 356

Using rsync 356

Version Control for Configuration Files 358

System Rescue 360

The Ubuntu Rescue Disc 361

Restoring the GRUB2 Boot Loader 361

Saving Files from a Nonbooting Hard Drive 362

References 362

17 Networking 363

Laying the Foundation: The localhost Interface 364

Checking for the Availability of the Loopback Interface 364

Configuring the Loopback Interface Manually 364

Checking Connections with ping, traceroute, and mtr 366

Networking with TCP/IP 368

TCP/IP Addressing 369

Using IP Masquerading in Ubuntu 371

Ports 372

IPv6 Basics 372

Network Organization 375

Subnetting 375

Subnet Masks 376

Broadcast, Unicast, and Multicast Addressing 376

Hardware Devices for Networking 377

Network Interface Cards 377

Network Cable 379

Hubs and Switches 380

Routers and Bridges 381

Initializing New Network Hardware 381

Using Network Configuration Tools 383

Command-Line Network Interface Configuration 384

Network Configuration Files 389

Using Graphical Configuration Tools 391

Dynamic Host Configuration Protocol 393

How DHCP Works 393

Activating DHCP at Installation and Boot Time 394

DHCP Software Installation and Configuration 395

Using DHCP to Configure Network Hosts 397

Other Uses for DHCP 399

Wireless Networking 399

Support for Wireless Networking in Ubuntu 399

Advantages of Wireless Networking 401

Choosing from Among Available Wireless Protocols 401

Beyond the Network and onto the Internet 402

Common Configuration Information 402

Configuring Digital Subscriber Line Access 404

Understanding PPP over Ethernet 404

Configuring a PPPoE Connection Manually 405

Configuring Dial-Up Internet Access 406

Troubleshooting Connection Problems 407

References 408

18 Remote Access with SSH and Telnet 409

Setting Up a Telnet Server 409

Telnet Versus SSH 411

Setting Up an SSH Server 411

SSH Tools 411

Using scp to Copy Individual Files Between Machines 412

Using sftp to Copy Many Files Between Machines 413

Using ssh-keygen to Enable Key-Based Logins 413

Virtual Network Computing 415

References 417

19 Securing Your Machines 419

Understanding Computer Attacks 419

Assessing Your Vulnerability 421

Protecting Your Machine 422

Securing a Wireless Network 423

Passwords and Physical Security 423

Configuring and Using Tripwire 424

Devices 425

Viruses 425

Configuring Your Firewall 426

AppArmor 430

Forming a Disaster Recovery Plan 432

References 433

20 Performance Tuning 435

Hard Disk 435

Using the BIOS and Kernel to Tune the Disk Drives 436

The hdparm Command 437

File System Tuning 438

The tune2fs Command 438

The e2fsck Command 439

The badblocks Command 439

Disabling File Access Time 439

Kernel 440

Apache 441

MySQL 442

Measuring Key Buffer Usage 442

Using the Query Cache 444

Miscellaneous Tweaks 445

Query Optimization 446

References 446

21 Kernel and Module Management 447

The Linux Kernel 448

The Linux Source Tree 449

Types of Kernels 451

Managing Modules 452

When to Recompile 454

Kernel Versions 455

Obtaining the Kernel Sources 456

Patching the Kernel 457

Compiling the Kernel 458

Using xconfig to Configure the Kernel 461

Creating an Initial RAM Disk Image 464

When Something Goes Wrong 465

Errors During Compile 465

Runtime Errors, Boot Loader Problems, and Kernel Oops 466

References 466

Part IV Ubuntu as a Server

22 Sharing Files and Printers 469

Using the Network File System 470

Installing and Starting or Stopping NFS 470

NFS Server Configuration 470

NFS Client Configuration 472

Putting Samba to Work 473

Manually Configuring Samba with /etc/samba/smb.conf 474

Testing Samba with the testparm Command 477

Starting, Stopping, and Restarting the smbd Daemon 478

Mounting Samba Shares 479

Configuring Samba Using SWAT 480

Network and Remote Printing with Ubuntu 483

Creating Network Printers 484

Using the Common UNIX Printing System GUI 486

Avoiding Printer Support Problems 488

References 489

23 Apache Web Server Management 491

About the Apache Web Server 491

Installing the Apache Server 492

Installing from the Ubuntu Repositories 493

Building the Source Yourself 494

Starting and Stopping Apache 497

Starting the Apache Server Manually 497

Using /etc/init.d/apache2 498

Runtime Server Configuration Settings 499

Runtime Configuration Directives 500

Editing apache2.conf 500

Apache Multiprocessing Modules 503

Using .htaccess Configuration Files 503

File System Authentication and Access Control 505

Restricting Access with allow and deny 506

Authentication 507

Final Words on Access Control 509

Apache Modules 510

mod_access 510

mod_alias 511

mod_asis 511

mod_auth 511

mod_auth_anon 512

mod_auth_dbm 512

mod_auth_digest 512

mod_autoindex 512

mod_cgi 512

mod_dir and mod_env 512

mod_expires 513

mod_headers 513

mod_include 513

mod_info and mod_log_config 513

mod_mime and mod_mime_magic 513

mod_negotiation 513

mod_proxy 514

mod_rewrite 514

mod_setenvif 514

mod_speling 514

mod_status 514

mod_ssl 514

mod_unique_id 515

mod_userdir 515

mod_usertrack 515

mod_vhost_alias 515

Virtual Hosting 515

Address-Based Virtual Hosts 515

Name-Based Virtual Hosts 516

Logging 517

References 519

24 Nginx Web Server Management 521

About the Nginx Web Server 521

Installing the Nginx Server 523

Installing from the Ubuntu Repositories 523

Building the Source Yourself 524

Configuring the Nginx Server 524

Virtual Hosting 527

Setting Up PHP 528

Adding and Configuring Modules 530

References 530

25 Other HTTP Servers 531

lighttpd 531

Yaws 532

Cherokee 533

Jetty 533

thttpd 534

Apache Tomcat 534

References 534

26 Remote File Serving with FTP 535

Choosing an FTP Server 535

Choosing an Authenticated or Anonymous Server 536

Ubuntu FTP Server Packages 536

Other FTP Servers 536

Installing FTP Software 537

The FTP User 538

Configuring the Very Secure FTP Server 540

Controlling Anonymous Access 541

Other vsftpd Server Configuration Files 542

Using the ftphosts File to Allow or Deny FTP Server Connection 543

References 544

27 Handling Email 545

How Email Is Sent and Received 545

The Mail Transport Agent 546

Choosing an MTA 548

The Mail Delivery Agent 548

The Mail User Agent 549

Basic Postfix Configuration and Operation 550

Configuring Masquerading 552

Using Smart Hosts 553

Setting Message Delivery Intervals 553

Mail Relaying 554

Forwarding Email with Aliases 554

Using Fetchmail to Retrieve Mail 555

Installing Fetchmail 555

Configuring Fetchmail 555

Choosing a Mail Delivery Agent 559

Procmail 559

Spamassassin 559

Squirrelmail 560

Virus Scanners 560

Autoresponders 560

Alternatives to Microsoft Exchange Server 560

Microsoft Exchange Server/Outlook Client 561

CommuniGate Pro 561

Oracle Beehive 562

Bynari 562

Open-Xchange 562

phpgroupware 562

PHProjekt 562

Horde 562

References 563

28 Proxying, Reverse Proxying, and Virtual Private Networks (VPN) 565

What Is a Proxy Server? 565

Installing Squid 566

Configuring Clients 566

Access Control Lists 567

Specifying Client IP Addresses 571

Sample Configurations 572

Virtual Private Networks (VPN) 574

Setting Up a VPN Client 575

Setting Up a VPN Server 577

References 579

29 Administering Relational Database Services 581

A Brief Review of Database Basics 582

How Relational Databases Work 584

Understanding SQL Basics 586

Creating Tables 586

Inserting Data into Tables 587

Retrieving Data from a Database 588

Choosing a Database: MySQL Versus PostgreSQL 590

Speed 590

Data Locking 591

ACID Compliance in Transaction Processing to

Protect Data Integrity 591

SQL Subqueries 592

Procedural Languages and Triggers 592

Configuring MySQL 593

Setting a Password for the MySQL Root User 594

Creating a Database in MySQL 594

Configuring PostgreSQL 596

Initializing the Data Directory in PostgreSQL 596

Creating a Database in PostgreSQL 597

Creating Database Users in PostgreSQL 598

Deleting Database Users in PostgreSQL 598

Granting and Revoking Privileges in PostgreSQL 599

Database Clients 599

SSH Access to a Database 600

Local GUI Client Access to a Database 601

Web Access to a Database 602

The MySQL Command-Line Client 603

The PostgreSQL Command-Line Client 604

Graphical Clients 605

References 605

30 NoSQL Databases 607

Key/Value Stores 610

Berkeley DB 610

Cassandra 611

Memcached and MemcacheDB 611

Redis 612

Riak 612

Document Stores 612

CouchDB 613

MongoDB 614

BaseX 614

Wide Column Stores 615

BigTable 615

HBase 615

Graph Stores 616

Neo4j 616

OrientDB 616

HyperGraphDB 616

FlockDB 617

References 617

31 Lightweight Directory Access Protocol (LDAP) 619

Configuring the Server 620

Creating Your Schema 620

Populating Your Directory 622

Configuring Clients 624

Evolution 624

Thunderbird 625

Administration 625

References 626

32 Linux Terminal Server Project (LTSP) 627

Requirements 628

Installation 631

Using LTSP 632

References 633

33 Virtualization on Ubuntu 635

KVM 637

VirtualBox 641

VMware 643

Xen 643

References 643

34 Ubuntu in the Cloud 645

Why a Cloud? 646

Software as a Service (SaaS) 647

Platform as a Service (PaaS) 647

Infrastructure as a Service (IaaS) 647

Metal as a Service (MaaS) 647

Before You Do Anything 648

Ubuntu Cloud and Eucalyptus 648

Deploy/Install Basics: Public or Private? 650

Public 650

Private 651

A euca2ools Primer 654

Ubuntu Cloud and OpenStack 656

Compute Infrastructure (Nova) 656

Storage Infrastructure (Swift) 657

Imaging Service (Glance) 657

Installation 657

Creating an Image 667

Instance Management 670

Storage Management 671

Network Management 671

An OpenStack Commands Primer 672

Learning More 672

Juju 672

Getting Started 673

Charms 676

The Juju GUI 677

Juju on Mac OS X 678

Ubuntu Metal as a Service (MaaS) 678

Landscape 679

References 679

35 Managing Sets of Servers 681

Juju 681

Puppet 682

Chef 682

CFEngine 683

Ansible 683

Landscape 683

References 683

36 Name Serving with the Domain Name System (DNS) 685

Understanding Domain Names 687

DNS Servers 687

DNS Records 688

Setting Up a DNS Server with BIND 691

References 693

Part V Programming Linux

37 Opportunistic Development 695

Version Control Systems 696

Managing Software Projects with Subversion 696

Managing Software Projects with Bazaar 697

Managing Software Projects with Mercurial 698

Managing Software Projects with Git 699

Introduction to Opportunistic Development 700

Launchpad 701

Quickly 703

Ground Control 707

Bikeshed and Other Tools 711

References 713

38 Helping with Ubuntu Development 715

Introduction to Ubuntu Development 716

Setting Up Your Development System 717

Install Basic Packages and Configure 717

Create a Launchpad Account 718

Set Up Your Environment to Work with Launchpad 718

Fixing Bugs and Packaging 720

Finding Bugs to Fix with Harvest 723

Masters of the Universe 723

References 723

39 Helping with Ubuntu Testing and QA 725

Community Teams 725

Ubuntu Testing Team 726

QA Team 726

Bug Squad 727

Test Drive 727

References 730

40 Using Perl 731

Using Perl with Linux 731

Perl Versions 732

A Simple Perl Program 732

Perl Variables and Data Structures 734

Perl Variable Types 735

Special Variables 735

Operators 736

Comparison Operators 736

Compound Operators 737

Arithmetic Operators 737

Other Operators 738

Special String Constants 738

Conditional Statements: if/else and unless 739

if 739

unless 740

Looping 740

for 740

foreach 741

while 741

until 742

last and next 742

do while and do until 742

Regular Expressions 743

Access to the Shell 744

Modules and CPAN 745

Code Examples 745

Sending Mail 745

Purging Logs 747

Posting to Usenet 748

One-Liners 749

Command-Line Processing 750

References 750

41 Using Python 753

Python on Linux 754

The Basics of Python 755

Numbers 755

More on Strings 757

Lists 760

Dictionaries 762

Conditionals and Looping 763

Functions 765

Object Orientation 766

Class and Object Variables 767

Constructors and Destructors 768

Class Inheritance 769

The Standard Library and the Python Package Index 771

References 771

42 Using PHP 773

Introduction to PHP 774

Entering and Exiting PHP Mode 774

Variables 774

Arrays 776

Constants 778

References 778

Comments 779

Escape Sequences 779

Variable Substitution 780

Operators 781

Conditional Statements 783

Special Operators 784

Switching 785

Loops 787

Including Other Files 789

Basic Functions 790

Strings 790

Arrays 793

Files 795

Miscellaneous 797

Handling HTML Forms 801

Databases 801

References 804

43 C/C++ Programming Tools for Ubuntu 805

Programming in C with Linux 806

Using the C Programming Project Management

Tools Provided with Ubuntu 807

Building Programs with make 807

Using Makefiles 807

Using the autoconf Utility to Configure Code 809

Debugging Tools 810

Using the GNU C Compiler 811

Graphical Development Tools 812

Using the KDevelop Client 812

The Glade Client for Developing in GNOME 813

References 814

Part VI Appendices

44 Using Other Popular Programming Languages 817

Ada 818

Clojure 819


D 820

Erlang 820

Forth 821

Go 821

Fortran 822

Groovy 822

Haskell 822

Java 823

JavaScript 823

Lisp 824

Lua 824

Mono 825

Ruby 825

Rust 826

Scala 826

Scratch 826

Vala 827

References 827

45 Beginning Mobile Development for Android 829

Introduction to Android 830

Hardware 830

Linux Kernel 830

Libraries 830

Android Runtime 830

Application Framework 830

Applications 831

Installing the Android SDK 831

Install Java 831

Install Eclipse 831

Install the SDK 831

Install the ADT Eclipse Plug-In 832

Install Other Components 832

Install Virtual Devices 833

Create Your First Application 834

References 835

46 Developing for Ubuntu Mobile/Touch 837

Install the SDK 838

Create Your First Application 838

Learn About Ubuntu Design 839

Study the User Interface Toolkit 839

References 840

Index 841

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)