| |
| |
Navigating Linux Obstacles Working Outline
Outline Summary
This outline provides a collection of issues, common to Linux users, and solutions for a possible Linux Troubleshooting book Navigating Linux Obstacles.
As of 10.27.03 this outline is based off of an estimated 3000+ suggestions from 1300+ people collected from various online forums such as Slashdot, ONLamp.com, a Linux Annoyances Mailing List and other resources.
The Obstacles keyword is a good potential for a series competing with the O'Reilly & Associates Annoyances series. Recommended covers involve obstacle courses.
Note: This outline, its previous forms and any derivation of work based in part of this outline is Copyrighted. This copyright belongs to Dee-Ann LeBlanc, Justin Davies and Paul Weinstein.
Introduction
An introduction to cover what conventions are used and what the book is designed to cover.
Estimated Page Count: 8
- About this Book
- What is a Linux Obstacle?
Chapter 1: Troubleshooting and Getting Assistance
Chapter 1 will cover the wealth of information available on Linux by providing how to get the best bang for your support buck without getting annoyed, lost or confused by documentation that at times can seem too technical, answers that can be rude or arrogant and online forums that can seem hard to navigate. This chapter will also cover some of the common issues with understanding how to read log files, fix broken library files and recover a Linux-based system using rescue CDs.
Section 1.1.1.4 covers /proc
Section 1.1.3 includes all that fun library stuff like editing the appropriate files and running the appropriate commands. Sub-section 1.1.3.1 includes typical groupings (kernel libraries, X libraries and so on), 1.1.3.2 discusses things like /etc/ld.so.conf and other ways of solving problems of libraries that the system can't find. Sub-section 1.1.3.3 is on the dangers and tricks for having multiple versions of a library installed and 1.1.3.4 is on finding the right library, the right version and getting it installed.
Section 1.2 will cover the "doc" directory. Finding it in your distribution, what it's got, etc. This section should also cover how Debian tends to split a cofig file up and rebuilding to handle dependencies bettter. Another possible topic is to cover the trick of scanning the source code for open() functions to track what files the program touches.
Estimated Page Count: 20
- 1.1 How the *bleep* do I fix this?
- 1.1.1 What just happened?
- 1.1.1.1 Introduction to common Linux log files
- 1.1.1.2 Finding log files
- 1.1.1.3 Understanding warning and error messages
- 1.1.1.4 Viewing other information about your system
- 1.1.2 Searching bug reports
- 1.1.3 What the heck's a library?
- 1.1.3.1 Introduction to Linux libraries
- 1.1.3.2 But it's already installed!
- 1.1.3.3 I need to have multiple versions installed
- 1.1.3.4 Tracking down missing libraries
- 1.1.4 Using specialty rescue CDs
- 1.2 Where's that config file?
Chapter 2: Software Obstacles
Chapter 2 introduces the various software packaging methods available for various Linux distributions and covers core obstacles such as installing and ermoving software, dealing with software dependencies and working with source code.
Section 2.2 Will cover some of the basics of what "dependency hell" is, how to solve some of the issues by maintaining a library of local packages and limiting an online search to repositiories built around a specific packaging format and linux disitrbution. This section will also cover some of the more trying issues such as how to install an application that requires a newer version of some software dependency without breaking the software dependency of preinstalled software.
Each sub-section in Section 2.5 will talk about how to extract the package source, etc., and make adjustments in a smart way before rebuilding your own custom version of the package. Especially useful if you're using kickstart or an equivalent to automate installations or making your own NFS installation server for a lab environment
Section 2.6 will discuss when it maybe necessary to convert packages between package formats and how to do it. For example, there's alien for RPM <-> DEB, we could also maybe expand on the previous topic to explain how to roll your own from source code?
Section 2.7 is a chapter review trying bits and pieces together
Estimated Page Count: 40
- 2.1 How in the heck do I use tar?
- 2.2 Solving Software Dependencies
- 2.2.1 Solving RPM Dependencies
- 2.2.2 Solving Source Dependencies
- 2.2.3 Installing Packages out-of-sync
- 2.3 Keeping Installed Software Up-to-date
- 2.4 Removing installed software
- 2.5 Rolling and re-rolling your own software package
- 2.5.1 RPMS
- 2.5.2 DEBS
- 2.5.3 Source
- 2.5.4 Portage
- 2.6 Converting a package to another format
- 2.7 Bringing it all together: Managing your packages
Chapter 3: Interface Obstacles
Chapter 3 covers the obstacle of Linux having two methods to do everything, the CLI and GUI. It also covers how to select the method best suited to both the user and the task at hand and how to customize your interface for the ultimate fit.
Section 3.1 covers cmdline - GUI equivilents.
Section 3.2.1 explains POSIX arguments and what this means for the end user.
Section 3.3 covers keybindings issues
Section 3.5.3 covers how to have multiple logged on users via the GUI ala WinXP.
Estimated Page Count: 40
- 3.1 Command Line and Graphical User tool equivalents
- 3.2 Solving Common Command Line Interface Obstacles
- 3.2.1 Understanding command line arguments and POSIX compliance
- 3.2.2 Creating shortcuts for commonly typed commands
- 3.3 Changing keyboard keys so they do what you expect
- 3.4 Solving Common Graphical User Interface Obstacles
- 3.4.1 Improving your font display
- 3.4.2 Cut and Paste between Windows
- 3.4.3 Adding Apps, docklets to GUI Menus
- 3.4.4 Speeding up your GUI
- 3.4.5 Creating new file type associations
- 3.4.6 Changing your refresh rate
- 3.5 Managing multiple sessions on a single monitor
- 3.5.1 Understanding multiple session for the Command Line Interface
- 3.5.2 Understanding multiple session for the Graphical User Interface
- 3.5.3 Switching sessions between users
- 3.6 Setting up one machine with multiple monitors
- 3.7 Smoothing out GNOME obstacles with customization
- 3.8 Smoothing out KDE obstacles with customization
Chapter 4: Hardware Obstacles
Chapter 4 covers obstacles configuring and using Linux with various hardware architectures and devices.
Section 4.1 discusses that a lot of the hardware obstacles turn out to being problems with manufacturers not sticking with standards (like using non-standard USB devices) and not advertising this. They just say "we don't support Linux" when in fact the problem is that their hardware would work fine in Linux if they bothered to follow standards. So, this section will discuss this issue, and include ways someone can research whether something they want to buy (or have) is standards-compliant or not, and how to report to the best places that something is or isn't. There's a major computer vendor in the States that's selling non-USB-compliant mice, and there are lots of digital cameras that are non-USB-compliant.
Section 4.2 will cover how hotplug system works for USB and how to take advantage of it.
Section 4.3 will discuss storage devices such as floppies, cds, hds, flash cards, USB keychains, DVDs, etc. Sub-section 4.3.1 covers how to mount and unmount these devices, manually and automaticly. Sub-section 4.3.2 covers the differnt methods used to writing to various devices such as floppies, cds and hds.
Section 4.4.1 covers monitors and video cards. 4.4.4 should also cover the specific problem of many digital cameras being non-USB-standard compliant.
Section 4.5 needs to cover configuring printers via lpd and cups in local, stand-alone network and Windows Shared Printer setups.
Estimated Page Count: 56
- 4.1 Understanding what's behind many hardware obstacles
- 4.2 Making smart use of USB hotplugging
- 4.4 Getting multimedia working
- 4.4.1 Why won't this video play?
- 4.4.2 My sound won't work!
- 4.4.3 How do I set up and use my scanner?
- 4.4.4 How do I grab files from my digital camera
- 4.4.5 Playing DVDs and Legal Issues
- 4.5 Troubleshooting printer problems?
- 4.6 Setting up non-mouse input devices
- 4.6.1 Drawing Tablets
- 4.6.2 Game Controllers
- 4.6.3 Remote Controls
- 4.6.4 Trackballs
- 4.7 Taking Linux on the Road
- 4.7.1 Laptops and Tablet PCs
- 4.7.1.1 Getting Power Management to On a Portable to Work
- 4.7.1.2 Managing Mulitple Network Configurations
- 4.7.1.3 Adding hardware via PC CARD (PCMCIA)
- 4.8 Communications
- 4.8.1 Getting the dreaded Linmodem to work
- 4.8.2 Wireless: WiFi
- 4.8.3 Wireless: Bluetooth
- 4.8.4 Wireless: Infrared
- 4.8.5 Hotplug
- 4.8.6 Firewire
- 4.9 CPUs
- 4.9.1 PowerPC
- 4.9.2 64-bit
- 4.9.3 Mulitple Processors (SMP)
Chapter 5: Desktop Obstacles
Chapter 5 covers obstacles with running common applications on a Workstation/Desktop Linux system. Such obstacles include accessing IE only websites, using IM clients and exchanging Office documents without loosing important formating information.
Section 5.1 will cover software equivalaents between Windows and Linux. For example MS Office to OpenOffice.org or Abiword, MS Outlook to Ximian Evolution.
Section 5.2 will cover system equivalaents between Windows and Linux. For example, in Windows NT/Win2K/Win2003, an admin/user can stop and start a serivce either by using the GUI Service panel or by issuing a "Net Start" and a "NetStop". In Linux the concept is different. kill -HUP`path/to/pid/service.pid`, Another example is Linux is very scriptdriven. Hence Windows has various startup directories/registryentries/Serivce pannel. Linux has RC scripts.
Section 5.4 will include compression issues (i.e zip files) as will Section 5.5.
Sub-Section 5.4.5 will cover how to work with Microsoft Office docuemnts with "breaking them." That is OpenOffice.org can open and process Office documents, but can mess up formating, fonts within a file that may go back to a MS Office user. This section or 5.3 can also cover methods of trasfer files from using cd or floppies to using the network via samba, scp, ftp, etc.
Estimated Page Count: 56
- 5.1 Linux equivalents to Windows programs
- 5.2 Linux equivalents to Windows features
- 5.2.1 Getting Java to work
- 5.2.2 Getting MP3s to work
- 5.2.3 Listening to streaming broadcasts
- 5.2.4 Instant Messaging
- 5.2.5 Reading, Creating PDFs
- 5.3 Browsing Other Filesystems
- 5.3.1 Browsing Windows shares over a network
- 5.3.2 Browsing Macintosh shares over a network
- 5.3.3 Browsing other Unix shares over a network
- 5.3.4 Accessing partitions from "The other OS" on a multi-boot system
- 5.4 Exchanging files with Windows users
- 5.4.1 Zip Files
- 5.4.2 Address Books and vCards
- 5.4.3 Email Archives and mbox Format
- 5.4.4 Reading TNEF and RTF files
- 5.4.5 Office Documents Formats
- 5.5 Exchanging files with Macintosh users
- 5.6 Not Missing out on Web Content
- 5.6.1 Accessing "Internet Explorer Only" websites
- 5.6.2 Dealing with plugins for Quicktime, Java and other common web media.
- 5.7 When you have to use that Windows program
- 5.7.1 Why won't my Windows game run?
- 5.7.2 Selecting the best solution
- 5.7.3 Installing and configuring WINE
- 5.7.4 Using WINE
- 5.8 How to access and Office VPN
- 5.9 How to use a broadband connection with PPP
Chapter 6: Workstation Obstacles
Chapter 6 covers the obstacle of using various development tools to mangage, build and test code on Linux. This chapter also covers known "gotchas" for building custom Linux kernels and touches a bit more on understanding the open source community with an eye to direct participation.
Section 6.1 and section 2.1 in Chapter 2 are in part related to each other as they cover how to get the most out of being involved in the community. This section should also deal with the technical and methodological side of programming, and will give a good introduction to the whole process.
Section 6.4.2 and 6.4.3 covers dealing with missing libraries from a developer point of view is a bit more advanced in dealing with this issue then the previous missing library sections in chapter 2.
Section 6.5 is not a how-to, more of a "Beware of these gotchas." Warnings about trying to patch vendor kernel source with patches meant for the main kernel's source. Sub-section 6.5.2 is pluses and minuses, strategies, etc. on replacing a vendor kernel with a raw kernel. 6.5.4 will explain how file operations work from the kernel perspective, e.g. what happens when you "mv" a file
Section 6.6 will be about the various characteristics of programming languages and how they relate such to avoid obstacles for developers. For example Perl's anything goes to Python's more refined structure. Or PHP's Apache Module design for speed for web programming to Perl's having to fork a new process (and interpreter).
Estimated Page Count: 62
- 6.1 I want to help!
- 6.1.1 Is this a bug, a feature or an obstacle?
- 6.1.2 Is this just user error?
- 6.1.3 Where should I report this bug?
- 6.1.4 Has this already been submitted?
- 6.1.5 Understanding Bugzilla
- 6.1.6 Understanding development life cycles
- 6.1.7 Giving Feedback on Pre-Release Software
- 6.2 Integrated Development Environment versus Assorted Tools
- 6.2.1 Linux Programming For Windows Developors
- 6.2.2 Kylix
- 6.2.3 kdevelop code-forge
- 6.3 Common Linux Development Tools
- 6.3.1 Version control with RCS
- 6.3.2 Version control with CVS
- 6.3.3 Keeping track of the build process with make
- 6.3.4 Debugging the gdb and valgrind debuggers
- 6.3.5 Building a configure script with autoconf
- 6.3.6 Applying and creating patches with patch and diff
- 6.3.7 Testing syntax with bison, yacc, lexx and lint
- 6.3.8 Tracking down memory leaks
- 6.4 Dealing with...
- 6.4.1 Missing Header Files
- 6.4.2 Missing Static Libraries
- 6.4.3 Out of date libraries and tools
- 6.4.4 Linking C++ code from different gcc versions
- 6.5 Kernel Obstacles
- 6.5.1 Upgrading your kernel
- 6.5.2 Replacing your vendor's kernel with a raw kernel
- 6.5.3 Configuring kernel source for PPC
- 6.5.4 Understanding file operations
- 6.5.5 Understanding Bitkeeper
- 6.5.6 Common kernel patches
- 6.6 Which Scripting Language is Right for Problem X?
Appendix A: References and Resources
Estimated Page Count: 10
Appendix B: Getting Help in the Open Source World
Estimated Page Count: 10
Appendix C: Using and Giving in an Open Source Project
Estimated Page Count: 10
|
|
|