Latest posts for tag ubuntu
First pratical lesson
Notes after today's training session.
Small index of most used shell commands:
- ls - list directory contents
- cp - copy files and directories
- mv - move (rename) files
- rm - remove files or directories
- find - search for files in a directory hierarchy
- cat - concatenate files and print on the standard output
- more - file perusal filter for crt viewing
- less - opposite of more (quit with 'q')
- cd - Change the current directory to DIR. (use "help cd" instead of "man cd")
- mkdir - make directories
- rmdir - remove empty directories
Small index of commands useful for combining in pipelines:
- grep, egrep, fgrep, rgrep - print lines matching a pattern
- tail - output the last part of files
- head - output the first part of files
- sort - sort lines of text files
- uniq - report or omit repeated lines
- sed - stream editor
- wc - print the number of newlines, words, and bytes in files
Problems found during the lesson:
- You set the system default locale to Amharic, and the gdm login will be in Amharic input mode. We didn't find out how to switch it back to input roman characters. Right click on the input field to set the input method doesn't work. Since usernames are not in Amharic, you're locked out.
- So you
CTRL+ALT+F1
, login and trydpkg-reconfigure locales
. On Ubuntu Dapper, it does not work anymore. - So you dig and dig and dig and finally find that you can force a locale in
/etc/default/gdm
(but not in/etc/gdm/locale.conf
, nor in/etc/gdm/gdm.conf
). - Then the internet works for a bit and you look up how to reconfigure locales
in Ubuntu. Turns out you have to use
localeconf
, which is not installed by default, is not in universe and thus not on the CDs, and needs to be downloaded from the Internet. - The Ubuntu wiki is all on https, which defeats any attempt of proxy caching.
- An Internet proxy needs to be configured 3 times: in Gnome, in Firefox and in Synaptic (well, apt). This is especially tricky when you forgot to setup the proxy in Synaptic and seemingly unrelated applications fail, like the Ubuntu language selector, which internally invokes the package manager to download missing langpacks.
- Some short descriptions in the
NAME
section of manpages are hard to understand, or wrong. Noted onapt-get
,apt-cache
andless
. Top prize goes toapt-cache
:NAME apt-cache - APT package handling utility -- cache manipulator DESCRIPTION [...] apt-cache does not manipulate the state of the system but does provide operations to search and generate interesting output from the package metadata. [...]
So apt-cache is a manipulator that doesn't manipulate. A possible
improvement can be "query the APT package cache".
* The language selector in Ubuntu Breezy doesn't really exit and keeps the
package database locked. This seems to be fixed in Dapper, and probably had
been fixed in some Breezy update. System updates here are a problem: my
Dapper (with some Universe things in it) wanted to download more than
120Mb of data, and the Uni network was giving me 14Kbps. It's been a nice
opportunity to teach about fuser -uva
and kill
.
* dict
, squid
and many other packages from 'main' are not on the
normal Ubuntu CDs: is there an easy way to build a CD with them? Or do
Ubuntu CDs with extra packages already exist? I'll have to find out.
* cupsys has documentation outside of /usr/share/doc
, in
/usr/share/cups/doc-root
.
* man
works on all commands, except cd
, which is an internal shell
command and thus needs help
instead of man
. I should remember to
ponder about autogenerating manpages from help
output.
* Is there an index-like manpage with a list of the core Unix commands and
their short descriptions? It there's not, it's easy to generate:
#!/bin/sh
DIR=${1:-"/bin"}
(
find $DIR | while read FILE
do
if [ -x $FILE ] && ! [ -d $FILE ]
then
LANG=C COLUMNS=2000 man `basename $FILE` | \
grep ^SYNOPSIS -B 100 | grep ^NAME -A 100 | \
tail -n +2 | head -n +2 | \
grep -v '^[ \t]*$'
fi
done
) | sort | uniq | sed 's/^ \+//'
Try running it on /bin
and /sbin
: it's great!. Also, since it
doesn't redirect stderr
, it nicely exposes a number of manpage problems.
Lots of bugs to report when I come home: from here it'll take ages, and lots of money on the hotel internet connection, and some are Ubuntu-specific so I'd need to do everything online with Malone.
As usual, teaching is one of the best ways to find bugs.
I propose an Etch training session a month before release.
Other things to do:
- Find more info about that Wikipedia live CD with Wikipedia browsable without the Internet.
- Make a collection of Free technical E-books: even those Indian low-cost book editions are too expensive here, so E-books mean a lot.
Update: Matt Zimmerman writes:
I read your blog entry at http://www.enricozini.org/blog/eng/second-day-in-addis and wanted to respond as follows:
localeconf is not the standard way to configure locales in Ubuntu; what documentation told you that? It's an unsupported package from Progeny. If what you wanted was to set the system default locale from the command line, editing /etc/environment is probably the best way.
I suggest filing a bug report at https://launchpad.net/products/ubuntu-website about the HTTPS issue; I don't think it's necessary for the entire wiki to be HTTPS, only authentication.
Synaptic may be able to use the GNOME proxy settings without introducing undesirable dependencies; please file a wishlist bug
dict, squid and other packages from main are not on the Ubuntu CDs because there is no space. The DVD contains these packages.
The cupsys documentation bug was quite likely inherited from Debian and should be reported there
You can file bugs in Malone via email; this has been possible for a long time now. Please don't reinforce this misconception.
Update:
- I filed a bug about the website on https problem: https://launchpad.net/products/ubuntu-website/+bug/54364
- I filed a bug about having to setup proxy in synaptic as well: https://launchpad.net/products/synaptic/+bug/54365
- The cups documentation is outside of
/usr/share/doc
, but there actually is a link/usr/share/doc/cupsys/online-docs
that points to the documentation. We checked the output ofdpkg -L
and did not notice the symlink.
Live CD on a removable disk, the Debian way
In Live CD on a removable disk at some point I wrote:
Enrico's note: do we have anything in Debian that we can install and just does that?
Here are the answers:
Well, Enrico, a tool I really grew fond of, which auto-configures X on Debian systems is xdebconfigurator, it lacks being auto-run on each system start, which I consider a feature on normal systems, but for your proposed usage (i.e. a portable USB-storage based Debian system), it would certainly be the right thing.
Essentially, it never failed on me. Except for VMware virtual machines, where all it did wrong was that it proposed too high resolutions which resulted from my dual-screen Windows setup I ran VMware on. You might want to give it a try.
I added the support in casper for doing this almost a year ago and it has saved me lots of debugging time. Booting the live CD that way is almost as fast as booting an installed system. If you couple this with using the persistent storage support in casper, you can get the configure-on-boot support together with persistency.
In a later update, slh is quited saying that xresprobe doesn't work on AMD64. This is wrong, I wrote that support based on code by Matthew Garret a little more than nine months ago. I wouldn't recommend incorporating it in new-written code, but rather use libx86
And finally, Marco Amadori writes:
Without needing to look for tools external to Debian, there is already the Debian Live software in sid: live-package, that creates a live system, and casper, that generates an initramfs that can configure a Debian system on the fly.
So far there is no hard disk target for live-package, but the "Iso" target can already do the job quite well. At boot time, Casper's initramfs scans all the block devices, so it works also for USB keys and hard drives.
To obtain a hard drive image, you just need to invoke "make-live" with the options to have the required software, then copy the content of the iso (or of the directory
./debian-live/binary
) on a partition and install the boot loader.This is what the future "HD" target of live-package will do; so far it can only build ISO and Netboot images.
Live CD on a removable disk
Eros is a hardware guru that happened to be the unknown guy sitting next to me on a plane.
He happens to be a happy Kubuntuer. While chatting, he told me one of his systems is an external hard drive made by copying a Kubuntu live CD image on it.
Why did you do so? I asked.
Because this way I can plug it in any computer, and it'll do hardware detection at boot. However it's a hard drive, so it's fast, and I can keep my home and all my customisations on it.
I had never thought of it.
That's an interesting and smart (ab)use of a live CD.
Now I wonder: what would be required to plug the live CD boot time hardware detection infrastructure on an existing Debian or Ubuntu instalation?
Update: slh on IRC suggests (a bit edited by me):
A lot of the former "obscure black magic" for live CDs isn't needed anymore. What is needed is: a kernel with static usb-storage, libusual, ehci-hcd, ohci-hcd, uhci-hdc (or an appropriate initrd/ initramfs). udev takes care of most h/w detection issues these days.
As long as everything needed to boot is contained in a single partition you don't need a fstab: udev, hal and pmount take care of the rest, procfs, sysvfs, devpts, usbfs, shm are mounted by sysvinit.
All what is left is a tool to create the xorg.conf while booting (those tools exist and just need to be called early).
Everything else is just a matter of convenience: enhancing the live span of the USB key by changing data into tmpfs, etc.; if passwordless logins are required then xsession and inittab need to be changed; new ssh host keys generated on boot; small stuff.
With ordinary flash storage, jffs2 and something to reduce write access is a good idea: perhaps unionfs for /var/ and /home/, bind mounting /tmp/ on /var/tmp/), but that's also not strictly necessary.
Mostly it boils down to running the xorg-creation script at every boot time.
There are various tools to do that. Some are here, but there is surely more. (Enrico's note: do we have anything in Debian that we can install and just does that?)
Since USB and PS/2 mice share the same device since kernel 2.6, that part of xorg.conf doesn't strictly need to be detected, same for the keyboard (alps and synaptic touchpads can be easily detected) and X.org can use the screen's ddc info although it's not always reliable.
It can boil down to just detecting the video chipset: something like this, that uses PCI IDs from discover1-data.
It can also become a lot easier with X.org's own ddc detection, which almost boils down to configuring input devices and selecting the video driver. If I understand Daniel Stone correctly, X.org will soon improve its detection routines (fail safe X (auto-)configuration) as well in X.org 7.3.
xresprobe is in debian: it's pretty similar to ddcxinfo-kanotix, both forked off RedHat's kudzu package - and all fail miserably on amd64. That's why ddcxinfo has a fallback to 1024*768 @75 Hz which "always works (+manual overrides)".
Fixing problems after upgrade to Dapper
Laptop: Asus M3Ae
Problem: Can't mount root partition because of various ACPI errors. Breezy kernel works.
Solution:
1) boot with old kernel
2) sudo echo "libata noacpi=1" >> /etc/mkinitramfs/modules
3) sudo mv /boot/initrd.img-2.6.15-25-686 /boot/initrd.img-2.6.15-25-686.backup
4) mkinitramfs -o /boot/initrd.img-2.6.15-25-686 2.6.15-25-686
Thanks: Matthew Garrett