Anhang G. Alternativen zu Busybox-Befehlen

Im Gegensatz zu früheren Versionen von Red Hat Enterprise Linux beinhaltet Red Hat Enterprise Linux 6 keine Version von busybox, um Shell-Befehle in Pre- und Post-Installationsumgebungen zur Verfügung zu stellen. Tabelle G.1, »Alternativen zu Busybox-Befehlen« umfasst eine Liste von busybox-Befehlen, entsprechende Wege zur Umsetzung der gleichen Funktionalität in der bash, sowie der Verfügbarkeit dieser Alternativen in den %pre- und %post-Umgebungen. Die Tabelle zeigt auch den exakten Pfad zum Befehl an, auch wenn Sie diesen generell nicht angeben müssen, da normalerweise die PATH-Umgebungsvariable in der Installationsumgebung gesetzt ist.
Wenn ein Befehl nur unter %post verfügbar ist, wird der Befehl nur auf dem Zielsystem ausgeführt und seine Verfügbarkeit hängt daher davon ab, ob das Paket, das den Befehl liefert, installiert ist. Jeder Befehl, der in der Spalte "New command or alternative" von Tabelle G.1, »Alternativen zu Busybox-Befehlen« erscheint, steht unter Red Hat Enterprise Linux 6 zur Verfügung, auch wenn nicht jeder Befehl auf jedem installierten System verfügbar ist.
Wo ein Befehl als nicht verfügbar aufgelistet ist, können Sie ggf. eine äquivalente Funktionalität mit einem Python-Skript erzielen. Die Python-Sprache steht %pre- und %post-Skript-Autoren zur Verfügung, zusammen mit einer Reihe von einsatzbereiten Python-Modulen. Falls Ihnen daher ein bestimmter Befehl in der Installationsumgebung nicht zur Verfügung steht, empfehlen wir Ihnen die Verwendung von Python als Skript-Sprache.

Tabelle G.1. Alternativen zu Busybox-Befehlen

Busybox-Befehl %pre %post Neuer Befehl oder Alternative
addgroup nein ja /usr/sbin/groupadd
adduser nein ja /usr/sbin/useradd
adjtimex nein nein none
ar nein ja /usr/bin/ar
arping ja ja /sbin/arping oder /usr/sbin/arping
ash ja ja /bin/bash
awk ja ja /sbin/awk, /sbin/gawk oder /usr/bin/gawk [a]
basename ja ja /bin/bash [b], /usr/bin/basename
bbconfig nein nein keiner — dieser Befehl ist spezifisch für Busybox
bunzip2 ja ja /usr/bin/bunzip2, /usr/bin/bzip2 -d
busybox nein nein none
bzcat ja ja /usr/bin/bzcat, /usr/bin/bzip2 -dc
cal nein ja /usr/bin/cal
cat ja ja /usr/bin/cat
catv nein nein cat -vET or cat -A
chattr ja ja /usr/bin/chattr
chgrp ja ja /usr/bin/chgrp
chmod ja ja /usr/bin/chmod
chown ja ja /usr/bin/chown
chroot ja ja /usr/sbin/chroot
chvt ja ja /usr/bin/chvt
cksum nein ja /usr/bin/cksum
clear ja ja /usr/bin/clear
cmp nein ja /usr/bin/cmp
comm nein ja /usr/bin/comm
cp ja ja /usr/bin/cp
cpio ja ja /usr/bin/cpio
crond nein nein keiner — keine Daemons für Scriptlets verfügbar
crontab nein ja /usr/bin/crontab
cut ja ja /usr/bin/cut
date ja ja /usr/bin/date
dc nein ja /usr/bin/dc
dd ja ja /usr/bin/dd
deallocvt nein ja /usr/bin/deallocvt
delgroup nein ja /usr/sbin/groupdel
deluser nein ja /usr/sbin/userdel
devfsd nein nein keiner — Red Hat Enterprise Linux verwendet kein devfs
df ja ja /usr/bin/df
diff nein ja /usr/bin/diff
dirname ja ja /bin/bash [c], /usr/bin/dirname
dmesg ja ja /usr/bin/dmesg
dnsd nein nein keiner — keine Daemons für Scriptlets verfügbar
dos2unix nein nein sed 's/.$//'
dpkg nein nein keiner — keine Unterstützung für Debian-Pakete
dpkg-deb nein nein keiner — keine Unterstützung für Debian-Pakete
du ja ja /usr/bin/du
dumpkmap nein nein none
dumpleases nein nein none
e2fsck ja ja /usr/sbin/e2fsck
e2label ja ja /usr/sbin/e2label
echo ja ja /usr/bin/echo
ed nein nein /sbin/sed, /usr/bin/sed
egrep ja ja /sbin/egrep, /usr/bin/egrep
eject ja ja /usr/bin/eject
env ja ja /usr/bin/env
ether-wake nein nein none
expr ja ja /usr/bin/expr
fakeidentd nein nein keiner — keine Daemons für Scriptlets verfügbar
false ja ja /usr/bin/false
fbset nein ja /usr/sbin/fbset
fdflush nein nein none
fdformat nein ja /usr/bin/fdformat
fdisk ja ja /usr/sbin/fdisk
fgrep ja ja /sbin/fgrep, /usr/bin/fgrep
find ja ja /usr/bin/find
findfs nein nein none
fold nein ja /usr/bin/fold
free nein ja /usr/bin/free
freeramdisk nein nein none
fsck ja ja /usr/sbin/fsck
fsck.ext2 ja ja /usr/sbin/fsck.ext2, /usr/sbin/e2fsck
fsck.ext3 ja ja /usr/sbin/fsck.ext3, /usr/sbin/e2fsck
fsck.minix nein nein keiner — keine Unterstützung für das Minix-Dateisystem
ftpget ja ja /usr/bin/ftp oder Python ftplib module
ftpput ja ja /usr/bin/ftp oder Python ftplib module
fuser nein ja /sbin/fuser
getopt nein ja /usr/bin/getopt
getty nein nein none
grep ja ja /sbin/grep, /usr/bin/grep
gunzip ja ja /usr/bin/gunzip, /usr/bin/gzip -d
gzip ja ja /usr/bin/gzip
hdparm ja ja /usr/sbin/hdparm
head ja ja /usr/bin/head
hexdump nein ja /usr/bin/hexdump
hostid nein ja /usr/bin/hostid oder Python
hostname ja ja /sbin/hostname, /usr/bin/hostname
httpd nein nein keiner — keine Daemons für Scriptlets verfügbar
hush nein nein none
hwclock ja ja /usr/sbin/hwclock
id nein ja /usr/bin/id oder Python
ifconfig ja ja /sbin/ifconfig, /usr/sbin/ifconfig
ifdown nein nein ifconfig device down
ifup nein nein ifconfig device up
inetd nein nein keiner — keine Daemons für Scriptlets verfügbar
insmod ja ja /sbin/insmod, /usr/sbin/insmod
install nein ja /usr/bin/install oder mkdir/cp/chmod/chown/chgrp
ip ja ja /sbin/ip, /usr/sbin/ip
ipaddr nein nein ifconfig oder ip
ipcalc ja ja /sbin/ipcalc, /usr/bin/ipcalc
ipcrm nein ja /usr/bin/ipcrm
ipcs nein ja /usr/bin/ipcs
iplink nein nein ip
iproute nein nein ip
iptunnel nein ja /sbin/iptunnel
kill ja ja /sbin/kill, /usr/bin/kill
killall ja ja /usr/bin/killall
lash nein nein none
last nein ja /usr/bin/last
length nein nein Python oder bash
less ja ja /usr/bin/less
linux32 nein nein none
linux64 nein nein none
ln ja ja /sbin/ln, /usr/bin/ln
load_policy ja ja /sbin/load_policy, /usr/sbin/load_policy
loadfont nein nein none
loadkmap nein nein none
login ja ja /usr/bin/login
logname nein ja /usr/bin/logname
losetup ja ja /usr/bin/losetup
ls ja ja /usr/bin/ls
lsattr ja ja /usr/bin/lsattr
lsmod ja ja /usr/bin/lsmod
lzmacat nein ja /usr/bin/lzmadec
makedevs nein nein /usr/bin/mknod
md5sum ja ja /usr/bin/md5sum
mdev nein nein none
mesg nein ja /usr/bin/mesg
mkdir ja ja /sbin/mkdir, /usr/bin/mkdir
mke2fs ja ja /usr/sbin/mke2fs
mkfifo nein ja /usr/bin/mkfifo
mkfs.ext2 ja ja /usr/sbin/mkfs.ext2
mkfs.ext3 ja ja /usr/sbin/mkfs.ext3
mkfs.minix nein nein keiner — keine Unterstützung für das Minix-Dateisystem
mknod ja ja /usr/bin/mknod
mkswap ja ja /usr/sbin/mkswap
mktemp ja ja /usr/bin/mktemp
modprobe ja ja /sbin/modprobe, /usr/sbin/modprobe
more ja ja /usr/bin/more
mount ja ja /sbin/mount, /usr/bin/mount
mountpoint nein nein Schauen Sie auf die Ausgabe des mount-Befehls
msh nein nein none
mt ja ja /usr/bin/mt
mv ja ja /usr/bin/mv
nameif nein nein none
nc nein ja /usr/bin/nc
netstat nein ja /bin/netstat
nice nein ja /bin/nice
nohup nein ja /usr/bin/nohup
nslookup ja ja /usr/bin/nslookup
od nein ja /usr/bin/od
openvt ja ja /usr/bin/openvt
passwd nein ja /usr/bin/passwd
patch nein ja /usr/bin/patch
pidof ja ja /usr/sbin/pidof
ping ja ja /usr/bin/ping
ping6 nein ja /bin/ping6
pipe_progress nein nein none
pivot_root nein ja /sbin/pivot_root
printenv nein ja /usr/bin/printenv
printf nein ja /usr/bin/printf
ps ja ja /usr/bin/ps
pwd ja ja /usr/bin/pwd
rdate nein ja /usr/bin/rdate
readlink ja ja /sbin/readlink, /usr/bin/readlink
readprofile nein ja /usr/sbin/readprofile
realpath nein nein Python os.path.realpath()
renice nein ja /usr/bin/renice
reset nein ja /usr/bin/reset
rm ja ja /sbin/rm, /usr/bin/rm
rmdir ja ja /sbin/rmdir, /usr/bin/rmdir
rmmod ja ja /sbin/rmmod, /usr/bin/rmmod
route ja ja /sbin/route, /usr/sbin/route
rpm ja ja /usr/bin/rpm
rpm2cpio nein ja /usr/bin/rpm2cpio
run-parts nein nein none
runlevel nein nein none
rx nein nein none
sed ja ja /sbin/sed, /usr/bin/sed
seq nein ja /usr/bin/seq
setarch nein ja /usr/bin/setarch
setconsole nein nein none
setkeycodes nein ja /usr/bin/setkeycodes
setlogcons nein nein none
setsid nein ja /usr/bin/setsid
sh ja ja /sbin/sh, /usr/bin/sh
sha1sum ja ja /usr/bin/sha1sum
sleep ja ja /sbin/sleep, /usr/bin/sleep
sort ja ja /usr/bin/sort
start-stop-daemon nein nein none
stat nein ja /usr/bin/stat oder Python os.stat()
strings nein ja /usr/bin/strings
stty nein ja /bin/stty
su nein ja /bin/su
sulogin nein ja /sbin/sulogin
sum nein ja /usr/bin/sum
swapoff ja ja /usr/sbin/swapoff
swapon ja ja /usr/sbin/swapon
switch_root nein ja /sbin/switch_root
sync ja ja /usr/bin/sync
sysctl nein ja /sbin/sysctl
tail ja ja /usr/bin/tail
tar ja ja /usr/bin/tar
tee ja ja /usr/bin/tee
telnet ja ja /usr/bin/telnet
telnetd nein nein keiner — keine Daemons für Scriptlets verfügbar
test nein ja /usr/bin/test oder [ in bash
tftp nein ja /usr/bin/tftp
time nein ja /usr/bin/time oder Python
top ja ja /usr/bin/top
touch ja ja /sbin/touch, /usr/bin/touch
tr nein ja /usr/bin/tr oder Python
traceroute nein ja /bin/traceroute
true ja ja /usr/bin/true
tty nein ja /usr/bin/tty
tune2fs ja ja /usr/sbin/tune2fs
udhcpc nein nein /sbin/dhclient
udhcpd nein nein keiner — keine Daemons für Scriptlets verfügbar
umount ja ja /sbin/umount, /usr/bin/umount
uname nein ja /bin/uname oder Python os.uname()
uncompress nein nein none
uniq ja ja /usr/bin/uniq
unix2dos nein nein sed 's/$//'
unlzma nein ja /usr/bin/unlzma
unzip nein ja /usr/bin/unzip
uptime nein ja /usr/bin/uptime oder Python, das /proc/uptime ausliest
usleep nein ja /bin/usleep oder Python
uudecode nein ja /usr/bin/uudecode oder Python
uuencode nein ja /usr/bin/uuencode oder Python
vconfig ja ja /usr/sbin/vconfig
vi ja ja /usr/bin/vi
vlock nein nein none
watch nein ja /usr/bin/watch
watchdog nein nein none
wc ja ja /usr/bin/wc
wget ja ja /sbin/wget, /usr/bin/wget
which nein ja /usr/bin/which
who nein ja /usr/bin/who
whoami nein ja /usr/bin/whoami
xargs ja ja /usr/bin/xargs
yes nein ja /usr/bin/yes
zcat ja ja /usr/bin/zcat
zcip nein nein NetworkManager sollte sich darum kümmern
[a] Red Hat Enterprise Linux 6 wird mit GNU awk anstelle von Busybox awk in der Installationsumgebung ausgeliefert.
[b] GNU-Bash kann Basisnamen-Funktionalität unter Verwendung von String-Manipulation liefern. Wenn var="/usr/bin/command" ist, dann ergibt echo ${var##*/} command.
[c] GNU-Bash kann dirname-Funktionalität unter Verwendung von String-Manipulation liefern. Wenn var="/usr/bin/command" ist, dann ergibt echo ${var%/*} /usr/bin.