Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th edition)

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 (12th edition)

By: Matthew Helmke (author)Mixed Media

Up to 2 WeeksUsually despatched within 2 weeks


Book + Content Update Program Ubuntu Unleashed 2017 Edition is filled with unique and advanced information for everyone who wants to make the most of the Ubuntu Linux operating system. This new edition has been thoroughly updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 16.04 LTS release with forthcoming online updates for 16.10, 17.04, and 17.10 when they are released. Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 16.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 navigation via Unity Dash, wireless networking, VPNs, software repositories, new NoSQL database options, virtualization and cloud services, new programming languages and development tools, monitoring, troubleshooting, and more. 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 touchscreen and phone devices In addition, this book is part of InformIT's exciting Content Update Program, which provides content updates for major technology improvements! As significant updates are made to Docker and Azure, sections of this book will be updated or new sections will be added to match the updates to the technologies. As updates become available, they will be delivered to you via a free Web Edition of this book, which can be accessed with any Internet connection. To learn more, visit informit.com/cup. How to access the Web Edition: Follow the instructions inside to learn how to register your book to access the FREE Web Edition.

About 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 technical writer for Canonical, Inc., documenting cloud- and DevOps-related 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 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.


Introduction xxxiii Licensing xxxiv Who This Book Is For xxxv Those Wanting to Become Intermediate or Advanced Users xxxv Sysadmins, Programmers, and DevOps xxxvi What This Book Contains xxxvii Conventions Used in This Book xxxviii PART I: GETTING STARTED Chapter 1 Installing Ubuntu and Post-Installation Configuration 1 Before You Begin the Installation 1 Researching Your Hardware Specifications 2 Installation Options 2 32-Bit vs 64-Bit Ubuntu 4 Planning Partition Strategies 5 The Boot Loader 5 Installing from DVD or USB Drive 6 Step-by-Step Installation 6 Installing 7 First Update 13 Shutting Down 13 Finding Programs and Files 14 Software Updater 15 The sudo Command 18 Configuring Software Repositories 19 System Settings 21 Detecting and Configuring a Printer 22 Configuring Power Management in Ubuntu 22 Setting the Time and Date 23 Configuring Wireless Networks 24 Troubleshooting Post-Installation Configuration Problems 26 References 27 Chapter 2 Background Information and Resources 29 What Is Linux? 29 Why Use Linux? 31 What Is Ubuntu? 33 Ubuntu for Business 33 Ubuntu in Your Home 35 Getting the Most from Ubuntu and Linux Documentation 35 Ubuntu Developers and Documentation 36 Websites and Search Engines 37 Web Search Tips 37 Google Is Your Friend 37 Ubuntu Package Listings 38 Commercial Support 38 Documentation 39 Linux Guides 39 Ubuntu 40 Mailing Lists 40 Ubuntu Project Mailing Lists 41 Internet Relay Chat 42 PART II: DESKTOP UBUNTU Chapter 3 Working with Unity 43 Foundations and the X Server 43 Basic X Concepts 44 Using X 45 Elements of the xorg.conf File 46 Starting X 51 Using a Display Manager 51 Changing Window Managers 52 Using Unity, a Primer 52 The Desktop 53 Customizing and Configuring Unity 58 Power Shortcuts 60 References 61 Chapter 4 On the Internet 63 Getting Started with Firefox 63 Checking Out Google Chrome and Chromium65 Choosing an Email Client 66 Mozilla Thunderbird 66 Evolution 67 Other Mail Clients 68 RSS Readers 69 Firefox 69 Liferea 69 Internet Relay Chat 70 Usenet Newsgroups 72 References 74 Chapter 5 Productivity Applications 75 Introducing LibreOffice 76 Other Office Suites for Ubuntu 78 Working with GNOME Office 78 Working with KOffice 80 Other Useful Productivity Software 80 Working with PDF 80 Working with XML and DocBook 81 Working with LaTeX 82 Productivity Applications Written for Microsoft Windows 83 References 83 Chapter 6 Multimedia Applications 85 Sound and Music 85 Sound Cards 86 Adjusting Volume 87 Sound Formats 88 Listening to Music 89 Graphics Manipulation 92 The GNU Image Manipulation Program 93 Using Scanners in Ubuntu 94 Working with Graphics Formats 95 Capturing Screen Images 97 Other Graphics Manipulation Options 97 Using Digital Cameras with Ubuntu 98 Handheld Digital Cameras 98 Using Shotwell Photo Manager 98 Burning CDs and DVDs in Ubuntu 99 Creating CDs and DVDs with Brasero 99 Creating CDs from the Command Line 100 Creating DVDs from the Command Line 102 Viewing Video 104 TV and Video Hardware 104 Video Formats 105 Viewing Video in Linux 106 Personal Video Recorders 107 Video Editing 107 References 109 Chapter 7 Other Ubuntu Interfaces 111 Desktop Environment 112 KDE and Kubuntu 113 Xfce and Xubuntu 114 LXDE and Lubuntu 115 GNOME3 and Ubuntu GNOME 116 MATE and Ubuntu MATE 117 Ubuntu Kylin 118 References 118 Chapter 8 Games 121 Ubuntu Gaming 121 Installing Proprietary Video Drivers 122 Steam 123 Installing Games in Ubuntu 123 Warsow 124 Scorched 3D 124 Frozen Bubble 125 SuperTux 126 Battle for Wesnoth 126 Frets on Fire 127 FlightGear 128 Speed Dreams 129 Games for Kids 129 Commercial Games 129 Playing Windows Games 130 References 130 PART III: SYSTEM ADMINISTRATION Chapter 9 Managing Software 133 Ubuntu Software 133 Using Synaptic for Software Management 134 Staying Up-to-Date 137 Working on the Command Line 138 Day-to-Day Usage 138 Finding Software 141 Using apt Instead of apt-get 142 Compiling Software from Source 143 Compiling from a Tarball 143 Compiling from Source from the Ubuntu Repositories 144 Configuration Management 145 dotdee 145 Snappy Ubuntu Core 146 Using Snaps 146 References 147 Chapter 10 Command-Line Beginner's Class 149 What Is the Command Line? 150 Accessing the Command Line 151 Text-Based Console Login 152 Logging Out 153 Logging In and Out from a Remote Computer 153 User Accounts 154 Reading Documentation 155 Using Man Pages 156 Using apropros 156 Using whereis 157 Understanding the Linux File System Hierarchy 157 Essential Commands in /bin and /sbin 158 Configuration Files in /etc 159 User Directories: /home 159 Using the Contents of the /proc Directory to Interact with the Kernel 160 Working with Shared Data in the /usr Directory 161 Temporary File Storage in the /tmp Directory 162 Accessing Variable Data Files in the /var Directory 162 Navigating the Linux File System 162 Listing the Contents of a Directory with ls 162 Changing Directories with cd 164 Finding Your Current Directory with pwd 165 Working with Permissions 165 Assigning Permissions 166 Directory Permissions 167 Altering File Permissions with chmod 168 File Permissions with umask 169 File Permissions with chgrp 170 Changing File Permissions with chown 170 Understanding Set User ID, Set Group ID, and Sticky Bit Permissions 170 Setting Permissions with Access Control Lists 171 Working with Files 173 Creating a File with touch 173 Creating a Directory with mkdir 173 Deleting a Directory with rmdir 174 Deleting a File or Directory with rm 175 Moving or Renaming a File with mv 175 Copying a File with cp 176 Displaying the Contents of a File with cat 177 Displaying the Contents of a File with less 177 Using Wildcards and Regular Expressions 177 Working as Root 178 Understanding and Fixing sudo 178 Creating Users 181 Deleting Users 182 Shutting Down the System 182 Rebooting the System 183 Commonly Used Commands and Programs 183 References 184 Chapter 11 Command-Line Master Class Part 1 185 Why Use the Command Line? 186 Using Basic Commands 187 Printing the Contents of a File with cat 188 Changing Directories with cd 189 Changing File Access Permissions with chmod 191 Copying Files with cp 191 Printing Disk Usage with du 192 Using echo 193 Finding Files by Searching with find 193 Searches for a String in Input with grep 196 Paging Through Output with less 197 Creating Links Between Files with ln 199 Finding Files from an Index with locate 200 Listing Files in the Current Directory with ls 200 Listing System Information with lsblk, lshw, lsmod, and lspci 202 Reading Manual Pages with man 203 Making Directories with mkdir 204 Moving Files with mv 204 Renaming Files with rename 204 Deleting Files and Directories with rm 205 Sorting the Contents of a File with sort 205 Printing the Last Lines of a File with tail 207 Printing the Location of a Command with which 207 Download Files with wget 207 References 208 Chapter 12 Command-Line Master Class Part 2 209 Redirecting Output and Input 209 stdin, stdout, stderr, and Redirection 211 Comparing Files 212 Finding Differences in Files with diff 212 Finding Similarities in Files with comm212 Limiting Resource Use and Job Control 213 Listing Processes with ps 213 Listing Jobs with jobs 214 Running One or More Tasks in the Background 215 Moving Jobs to the Background or Foreground with bg and fg 215 Printing Resource Usage with top 216 Setting Processes Priority with nice 218 Combining Commands 219 Pipes 219 Combining Commands with Boolean Operators 221 Running Separate Commands in Sequence 222 Process Substitution 222 Using Environment Variables 222 Using Common Text Editors 226 Working with nano 227 Working with vi 227 Working with emacs 229 Working with sed and awk 230 Working with Compressed Files 232 Using Multiple Terminals with byobu 233 Polite System Reset Using REISUB 234 Fixing an Ubuntu System That Will Not Boot 235 Checking BIOS 235 Checking GRUB 235 Reinstalling GRUB 235 Using Recovery Mode 236 Reinstalling Ubuntu 236 Tips and Tricks 236 Running the Previous Command 236 Running Any Previous Command 237 Running a Previous Command that Started with Specific Letters 237 Running the Same Thing You Just Ran with a Different First Word 237 Viewing Your History and More 237 Doing Two or More Things 237 Using Shortcuts 238 Confining a Script to a Directory 238 Using Coreutils 239 Reading the Contents of the Kernel Ring Buffer with dmesg 239 References 240 Chapter 13 Managing Users 241 User Accounts 241 The Super User/Root User 242 User IDs and Group IDs 244 File Permissions 244 Managing Groups 245 Group Listing 245 Group Management Tools 246 Managing Users 248 User Management Tools 248 Adding New Users 250 Monitoring User Activity on the System 251 Managing Passwords 252 System Password Policy 252 The Password File 253 Shadow Passwords 254 Managing Password Security for Users 256 Changing Passwords in a Batch 256 Granting System Administrator Privileges to Regular Users 257 Temporarily Changing User Identity with the su Command 257 Granting Root Privileges on Occasion: The sudo Command 259 Disk Quotas 262 Implementing Quotas 262 Manually Configuring Quotas 263 Related Ubuntu Commands 264 References 264 Chapter 14 Automating Tasks and Shell Scripting 265 Scheduling Tasks 265 Using at and batch to Schedule Tasks for Later 265 Using cron to Run Jobs Repeatedly 268 Using rtcwake to Wake Your Computer from Sleep Automatically 270 Basic Shell Control 272 The Shell Command Line 273 Shell Pattern-Matching Support 274 Redirecting Input and Output 275 Piping Data 276 Background Processing 277 Writing and Executing a Shell Script 277 Running the New Shell Program 279 Storing Shell Scripts for System-Wide Access 279 Interpreting Shell Scripts Through Specific Shells 280 Using Variables in Shell Scripts 281 Assigning a Value to a Variable 282 Accessing Variable Values 282 Positional Parameters 282 A Simple Example of a Positional Parameter 283 Using Positional Parameters to Access and Retrieve Variables from the Command Line 284 Using a Simple Script to Automate Tasks 284 Built-In Variables 286 Special Characters 287 Using Double Quotes to Resolve Variables in Strings with Embedded Spaces 288 Using Single Quotes to Maintain Unexpanded Variables 288 Using the Backslash as an Escape Character 289 Using the Backtick to Replace a String with Output 289 Comparison of Expressions in pdksh and bash 290 Comparing Expressions with tcsh 295 The for Statement 299 The while Statement 300 The until Statement 302 The repeat Statement (tcsh) 303 The select Statement (pdksh) 303 The shift Statement 304 The if Statement 304 The case Statement 305 The break and exit Statements 307 Using Functions in Shell Scripts 307 References 308 Chapter 15 The Boot Process 311 Running Services at Boot 311 Beginning the Boot Loading Process 312 Loading the Linux Kernel 314 System Services and Runlevels 315 Runlevel Definitions 315 Booting into the Default Runlevel 316 Understanding init Scripts and the Final Stage of Initialization 316 Controlling Services at Boot with Administrative Tools 317 Changing Runlevels 318 Troubleshooting Runlevel Problems319 Starting and Stopping Services Manually 319 Using Upstart 319 systemd 320 Boot Repair 322 References 322 Chapter 16 System-Monitoring Tools 323 Console-Based Monitoring 323 Using the kill Command to Control Processes 325 Using Priority Scheduling and Control 326 Displaying Free and Used Memory with free 327 Disk Space 328 Disk Quotas 329 Checking Log Files 329 Rotating Log Files 331 Graphical Process and System Management Tools 333 System Monitor 334 Conky 334 Other 339 KDE Process- and System-Monitoring Tools 339 Enterprise Server Monitoring 340 Landscape 340 Other 340 References 340 Chapter 17 Backing Up 341 Choosing a Backup Strategy 341 Why Data Loss Occurs 342 Assessing Your Backup Needs and Resources 343 Evaluating Backup Strategies 345 Making the Choice 348 Choosing Backup Hardware and Media 348 Removable Storage Media 348 CD-RW and DVD+RW/-RW Drives 349 Network Storage 349 Tape Drive Backup 349 Cloud Storage 350 Using Backup Software 350 tar: The Most Basic Backup Tool 351 The GNOME File Roller 353 The KDE ark Archiving Tool 353 Deja Dup 354 Back In Time 356 Unison 358 Using the Amanda Backup Application 358 Alternative Backup Software 359 Copying Files 360 Copying Files Using tar 360 Compressing, Encrypting, and Sending tar Streams 361 Copying Files Using cp 361 Copying Files Using mc 362 Using rsync 362 Version Control for Configuration Files 364 System Rescue 366 The Ubuntu Rescue Disc 367 Restoring the GRUB2 Boot Loader 367 Saving Files from a Nonbooting Hard Drive 368 References 368 Chapter 18 Networking 369 Laying the Foundation: The localhost Interface 370 Checking for the Availability of the Loopback Interface 370 Configuring the Loopback Interface Manually 370 Checking Connections with ping, traceroute, and mtr 371 Networking with TCP/IP 374 TCP/IP Addressing 374 Using IP Masquerading in Ubuntu 376 Ports 377 IPv6 Basics 378 Network Organization 380 Subnetting 381 Subnet Masks 381 Broadcast, Unicast, and Multicast Addressing 382 Hardware Devices for Networking 382 Network Interface Cards 382 Network Cable 384 Hubs and Switches 385 Routers and Bridges 386 Initializing New Network Hardware 387 Using Network Configuration Tools 389 Command-Line Network Interface Configuration 389 Network Configuration Files 394 Using Graphical Configuration Tools 397 Dynamic Host Configuration Protocol 399 How DHCP Works 399 Activating DHCP at Installation and Boot Time 400 DHCP Software Installation and Configuration 401 Using DHCP to Configure Network Hosts 403 Other Uses for DHCP 405 Wireless Networking 405 Support for Wireless Networking in Ubuntu 405 Advantages of Wireless Networking 407 Choosing from Among Available Wireless Protocols 407 Beyond the Network and onto the Internet 408 Common Configuration Information 408 Understanding PPP over Ethernet 410 Configuring a PPPoE Connection Manually 411 Configuring Dial-Up Internet Access 412 Troubleshooting Connection Problems 413 References 414 Chapter 19 Remote Access with SSH, Telnet, and VNC 415 Setting Up a Telnet Server 415 Telnet Versus SSH 417 Setting Up an SSH Server 417 SSH Tools 417 Using scp to Copy Individual Files Between Machines 418 Using sftp to Copy Many Files Between Machines 418 Using ssh-keygen to Enable Key-Based Logins 419 Virtual Network Computing 420 References 423 Chapter 20 Securing Your Machines 425 Understanding Computer Attacks 425 Assessing Your Vulnerability 427 Protecting Your Machine 428 Securing a Wireless Network 429 Passwords and Physical Security 429 Configuring and Using Tripwire 430 Devices 431 Viruses 431 Configuring Your Firewall 432 AppArmor 435 Forming a Disaster Recovery Plan 437 References 439 Chapter 21 Performance Tuning 441 Hard Disk 441 Using the BIOS and Kernel to Tune the Disk Drives 442 The hdparm Command 443 File System Tuning 444 The tune2fs Command 444 The e2fsck Command 445 The badblocks Command 445 Disabling File Access Time 445 Kernel 445 Apache 446 MySQL 448 Measuring Key Buffer Usage 448 Using the Query Cache 449 Miscellaneous Tweaks 451 Query Optimization 451 References 452 Chapter 22 Kernel and Module Management 453 The Linux Kernel 454 The Linux Source Tree 455 Types of Kernels 457 Managing Modules 458 When to Recompile 460 Kernel Versions 461 Obtaining the Kernel Sources 462 Patching the Kernel 463 Compiling the Kernel 464 Using xconfig to Configure the Kernel 467 Creating an Initial RAM Disk Image 470 When Something Goes Wrong 470 Errors During Compile 471 Runtime Errors, Boot Loader Problems, and Kernel Oops 472 References 472 PART IV: UBUNTU AS A SERVER Chapter 23 Sharing Files and Printers 473 Using the Network File System 474 Installing and Starting or Stopping NFS 474 NFS Server Configuration 474 NFS Client Configuration 475 Putting Samba to Work 476 Manually Configuring Samba with /etc/samba/smb.conf 478 Testing Samba with the testparm Command 481 Starting, Stopping, and Restarting the smbd Daemon 481 Mounting Samba Shares 482 Network and Remote Printing with Ubuntu 483 Creating Network Printers 483 Using the Common UNIX Printing System GUI 485 Avoiding Printer Support Problems 486 References 488 Chapter 24 Apache Web Server Management 489 About the Apache Web Server 489 Installing the Apache Server 490 Starting and Stopping Apache 491 Runtime Server Configuration Settings 492 Runtime Configuration Directives 492 Editing apache2.conf 493 Apache Multiprocessing Modules 495 Using .htaccess Configuration Files 496 File System Authentication and Access Control 498 Restricting Access with Require 498 Authentication 499 Final Words on Access Control 501 Apache Modules 502 mod access 502 mod alias 502 mod asis 503 mod auth 503 mod auth anon 503 mod auth dbm 503 mod auth digest 504 mod autoindex 504 mod cgi 504 mod dir and mod env 504 mod expires 504 mod headers 504 mod include 505 mod info and mod log config 505 mod mime and mod mime magic 505 mod negotiation 505 mod proxy 505 mod rewrite 505 mod setenvif 506 mod speling 506 mod status 506 mod ssl 506 mod unique id 506 mod userdir 506 mod usertrack 507 mod vhost alias 507 Virtual Hosting 507 Address-Based Virtual Hosts 507 Name-Based Virtual Hosts 508 Logging 509 HTTPS 510 References 513 Chapter 25 Nginx Web Server Management 515 About the Nginx Web Server 515 Installing the Nginx Server 517 Installing from the Ubuntu Repositories 517 Building the Source Yourself 517 Configuring the Nginx Server 518 Virtual Hosting 521 Setting Up PHP 522 Adding and Configuring Modules 523 HTTPS 524 References 526 Chapter 26 Other HTTP Servers 527 lighttpd 527 Yaws 528 Cherokee 528 Jetty 529 thttpd 529 Apache Tomcat 530 References 530 Chapter 27 Remote File Serving with FTP 531 Choosing an FTP Server 531 Choosing an Authenticated or Anonymous Server 532 Ubuntu FTP Server Packages 532 Other FTP Servers 532 Installing FTP Software 533 The FTP User 534 Configuring the Very Secure FTP Server 536 Controlling Anonymous Access 537 Other vsftpd Server Configuration Files 537 Using the ftphosts File to Allow or Deny FTP Server Connection 539 References 540 Chapter 28 Handling Email 541 How Email Is Sent and Received 541 The Mail Transport Agent 542 Choosing an MTA 544 The Mail Delivery Agent544 The Mail User Agent 545 Basic Postfix Configuration and Operation 546 Configuring Masquerading 548 Using Smart Hosts 549 Setting Message Delivery Intervals 549 Mail Relaying 550 Forwarding Email with Aliases 550 Using Fetchmail to Retrieve Mail 551 Installing Fetchmail 551 Configuring Fetchmail 551 Choosing a Mail Delivery Agent 555 Procmail 555 Spamassassin 555 Squirrelmail 556 Virus Scanners 556 Autoresponders 556 Alternatives to Microsoft Exchange Server 556 Microsoft Exchange Server/Outlook Client 557 CommuniGate Pro 557 Oracle Beehive 557 Bynari 558 Open-Xchange 558 Horde 558 References 558 Chapter 29 Proxying, Reverse Proxying, and Virtual Private Networks (VPN) 561 What Is a Proxy Server? 561 Installing Squid 562 Configuring Clients 562 Access Control Lists 563 Specifying Client IP Addresses 567 Sample Configurations 568 Virtual Private Networks (VPN) 570 Setting Up a VPN Client 571 Setting Up a VPN Server 573 References 575 Chapter 30 Administering Relational Database Services 577 A Brief Review of Database Basics 578 How Relational Databases Work 580 Understanding SQL Basics 582 Creating Tables 582 Inserting Data into Tables 583 Retrieving Data from a Database 584 Choosing a Database: MySQL Versus PostgreSQL 586 Speed 586 Data Locking 586 ACID Compliance in Transaction Processing to Protect Data Integrity 587 SQL Subqueries 588 Procedural Languages and Triggers 588 Configuring MySQL 588 Setting a Password for the MySQL Root User 589 Creating a Database in MySQL 590 Configuring PostgreSQL 592 Initializing the Data Directory in PostgreSQL 592 Creating a Database in PostgreSQL 593 Creating Database Users in PostgreSQL 593 Deleting Database Users in PostgreSQL 594 Granting and Revoking Privileges in PostgreSQL 594 Database Clients 595 SSH Access to a Database 595 Local GUI Client Access to a Database 597 Web Access to a Database 597 The MySQL Command-Line Client 598 The PostgreSQL Command-Line Client 600 Graphical Clients 600 References 601 Chapter 31 NoSQL Databases 603 Key/Value Stores 606 Berkeley DB 606 Cassandra 607 Memcached and MemcacheDB 607 Redis 608 Riak 608 Document Stores 608 CouchDB 609 MongoDB 610 BaseX 610 Wide Column Stores 611 BigTable 611 HBase 611 Graph Stores 612 Neo4j 612 OrientDB 612 HyperGraphDB 612 FlockDB 613 References 613 Chapter 32 Lightweight Directory Access Protocol (LDAP) 615 Configuring the Server 616 Creating Your Schema 616 Populating Your Directory 617 Configuring Clients 619 Evolution 620 Thunderbird 621 Administration 621 References 622 Chapter 33 Linux Terminal Server Project (LTSP) 623 Requirements 624 Installation 627 Using LTSP 628 References 629 Chapter 34 Virtualization on Ubuntu 631 KVM 633 VirtualBox 637 VMware 639 Xen 639 References 639 Chapter 35 Ubuntu in the Cloud 641 Why a Cloud? 642 Software as a Service (SaaS) 643 Platform as a Service (PaaS) 643 Infrastructure as a Service (IaaS) 643 Metal as a Service (MaaS) 643 Before You Do Anything 644 Deploy/Install Basics: Public, Private, or Hybrid? 644 Ubuntu Cloud and OpenStack 645 Compute Infrastructure (Nova) 645 Storage Infrastructure (Swift) 646 Networking Service (Neutron) 646 Identity Service (Keystone) 646 Imaging Service (Glance) 647 Dashboard (Horizon) 647 Learning More 647 Juju 647 Getting Started 648 Charms 650 The Juju GUI 652 Juju Quickstart 653 Juju on Mac OS X and Windows 653 Mojo: Continuous Delivery for Juju 653 Snappy Ubuntu Core 653 Ubuntu Metal as a Service (MaaS) 653 Landscape 654 References 654 Chapter 36 Managing Sets of Servers 655 Juju 655 Puppet 656 Chef 656 CFEngine 656 Ansible 657 Landscape 657 References 657 Chapter 37 Name Serving with the Domain Name System (DNS) 659 Understanding Domain Names 661 DNS Servers 661 DNS Records 662 Setting Up a DNS Server with BIND 665 References 667 PART V: PROGRAMMING LINUX Chapter 38 Using Programming Tools for Ubuntu 669 Programming with Linux 670 Using the C Programming Project Management Tools Provided with Ubuntu 671 Building Programs with make 671 Using Makefiles 671 Using the autoconf Utility to Configure Code 673 Debugging Tools 674 Using the GNU C Compiler 675 Graphical Development Tools 676 Using the KDevelop Client 676 The Glade Client for Developing in GNOME 677 Use an IDE or SDK 678 References 680 Chapter 39 Opportunistic Development 681 Version Control Systems 681 Managing Software Projects with Git 682 Managing Software Projects with Bazaar 683 Managing Software Projects with Subversion 684 Managing Software Projects with Mercurial 685 Introduction to Opportunistic Development 686 Launchpad 687 Ubuntu Make 688 Creating Snap Packages 689 Bikeshed and Other Tools 689 References 692 Chapter 40 Helping with Ubuntu Development 693 Introduction to Ubuntu Development 694 Setting Up Your Development System 695 Install Basic Packages and Configure 695 Create a Launchpad Account 696 Set Up Your Environment to Work with Launchpad 696 Developing Apps and Scopes 698 Fixing Bugs and Packaging 698 Finding Bugs to Fix with Harvest 701 Masters of the Universe 701 References 702 Chapter 41 Helping with Ubuntu Testing and QA 703 Community Teams 703 Ubuntu Testing Team 704 QA Team705 Bug Squad 705 Test Drive 705 References 708 Chapter 42 Using Popular Programming Languages 709 Ada 710 Clojure 710 COBOL 711 D 712 Dart 712 Elixir 713 Erlang 713 Forth 713 Go 714 Fortran 714 Groovy 715 Haskell 715 Java 715 JavaScript 716 Lisp 716 Lua 717 Mono 717 OCaml 718 Perl 718 PHP 719 Python 719 Ruby 719 Rust 720 Scala 720 Scratch 720 Vala 720 References 721 Chapter 43 Beginning Mobile Development for Android 723 Introduction to Android 724 Hardware 724 Linux Kernel 724 Libraries 724 Android Runtime 724 Application Framework 725 Applications 725 Installing Android Studio 725 Install Android Studio 725 Install SDK Packages 725 Create Your First Application 727 References 728 Chapter 44 Developing for Ubuntu Mobile/Touch 729 Install the SDK 730 Create Your First Application 730 References 731 Index 733 BONUS ONLINE CHAPTERS Chapter 45 Using Perl Web Using Perl with Linux Perl Versions A Simple Perl Program Perl Variables and Data Structures Perl Variable Types Special Variables Operators Comparison Operators Compound Operators Arithmetic Operators Other Operators Special String Constants Conditional Statements: if/else and unless if unless Looping for foreach while until last and next do ..while and do ..until Regular Expressions Access to the Shell Modules and CPAN Code Examples Sending Mail Purging Logs Posting to Usenet One-Liners Command-Line Processing References Chapter 46 Using Python Python on Linux The Basics of Python Numbers More on Strings Lists Dictionaries Conditionals and Looping Functions Object Orientation Class and Object Variables Constructors and Destructors Class Inheritance The Standard Library and the Python Package Index References Chapter 47 Using PHP Introduction to PHP Entering and Exiting PHP Mode Variables Arrays Constants References Comments Escape Sequences Variable Substitution Operators Conditional Statements Special Operators Switching Loops Including Other Files Basic Functions Strings Arrays Files Miscellaneous Handling HTML Forms Databases References

Product Details

  • ISBN13: 9780134511184
  • Format: Mixed Media
  • Number Of Pages: 832
  • ID: 9780134511184
  • weight: 1320
  • ISBN10: 0134511182
  • edition: 12th edition

Delivery Information

  • Saver Delivery: Yes
  • 1st Class Delivery: Yes
  • Courier Delivery: Yes
  • Store Delivery: Yes

Prices are for internet purchases only. Prices and availability in WHSmith Stores may vary significantly