Annexe G. Alternatives aux commandes busybox

Contrairement aux versions précédentes de Red Hat Enterprise Linux, Red Hat Enterprise Linux 6 n'inclut pas de version de busybox pour fournir des commandes shell dans les environnements de pré-installation et de post-installation. La Tableau G.1, « Alternatives aux commandes busybox » contient une liste des commandes busybox, des manières équivalentes d'implémenter la même fonctionnalité dans bash, et la disponibilité de ces alternatives dans les environnements %pre et %post. Le tableau indique aussi le chemin exact vers la commande, même s'il n'est généralement pas nécessaire de le spécifier car la variable d'environnement PATH est définie dans l'environnement d'installation.
Si une commande n'est disponible qu'en %post, celle-ci est alors exécutée sur le système cible et sa disponibilité dépendra de si le paquetage offrant cette commande est installé ou non. Chaque commande apparaissant dans la colonne « Nouvelle commande ou alternative » dans la Tableau G.1, « Alternatives aux commandes busybox » est disponible sur Red Hat Enterprise Linux 6, même si toutes les commandes ne sont pas disponibles sur tous les systèmes installés.
Lorsqu'une commande est répertoriée en tant qu'indisponible, vous devriez être en mesure de créer une fonctionnalité équivalente à l'aide d'un script Python. Le langage Python est disponible aux auteurs %pre et %post, de même qu'un ensemble de modules Python. Ainsi, si une commande particulière ne vous est pas disponible dans l'environnement d'installation, nous vous recommandons d'utiliser Python comme langue de script.

Tableau G.1. Alternatives aux commandes busybox

Commande Busybox %pre %post Nouvelle commande ou alternative
addgroup no yes /usr/sbin/groupadd
adduser no yes /usr/sbin/useradd
adjtimex no no aucun
ar no yes /usr/bin/ar
arping yes yes /sbin/arping ou /usr/sbin/arping
ash yes yes /bin/bash
awk yes yes /sbin/awk, /sbin/gawk, ou /usr/bin/gawk [a]
basename yes yes /bin/bash [b], /usr/bin/basename
bbconfig no no aucun — cette commande est sécifique à Busybox
bunzip2 yes yes /usr/bin/bunzip2, /usr/bin/bzip2 -d
busybox no no aucun
bzcat yes yes /usr/bin/bzcat, /usr/bin/bzip2 -dc
cal no yes /usr/bin/cal
cat yes yes /usr/bin/cat
catv no no cat -vET ou cat -A
chattr yes yes /usr/bin/chattr
chgrp yes yes /usr/bin/chgrp
chmod yes yes /usr/bin/chmod
chown yes yes /usr/bin/chown
chroot yes yes /usr/sbin/chroot
chvt yes yes /usr/bin/chvt
cksum no yes /usr/bin/cksum
clear yes yes /usr/bin/clear
cmp no yes /usr/bin/cmp
comm no yes /usr/bin/comm
cp yes yes /usr/bin/cp
cpio yes yes /usr/bin/cpio
crond no no aucun — aucun démon disponible pour les scriptlets
crontab no yes /usr/bin/crontab
cut yes yes /usr/bin/cut
date yes yes /usr/bin/date
dc no yes /usr/bin/dc
dd yes yes /usr/bin/dd
deallocvt no yes /usr/bin/deallocvt
delgroup no yes /usr/sbin/groupdel
deluser no yes /usr/sbin/userdel
devfsd no no aucun — Red Hat Enterprise Linux n'utilise pas devfs
df yes yes /usr/bin/df
diff no yes /usr/bin/diff
dirname yes yes /bin/bash [c], /usr/bin/dirname
dmesg yes yes /usr/bin/dmesg
dnsd no no aucun — aucun démon disponible pour les scriptlets
dos2unix no no sed 's/.$//'
dpkg no no aucun — pas de prise en charge des paquetages Debian
dpkg-deb no no aucun — pas de prise en charge des paquetages Debian
du yes yes /usr/bin/du
dumpkmap no no aucun
dumpleases no no aucun
e2fsck yes yes /usr/sbin/e2fsck
e2label yes yes /usr/sbin/e2label
echo yes yes /usr/bin/echo
ed no no /sbin/sed, /usr/bin/sed
egrep yes yes /sbin/egrep, /usr/bin/egrep
eject yes yes /usr/bin/eject
env yes yes /usr/bin/env
ether-wake no no aucun
expr yes yes /usr/bin/expr
fakeidentd no no aucun — aucun démon disponible pour les scriptlets
false yes yes /usr/bin/false
fbset no yes /usr/sbin/fbset
fdflush no no aucun
fdformat no yes /usr/bin/fdformat
fdisk yes yes /usr/sbin/fdisk
fgrep yes yes /sbin/fgrep, /usr/bin/fgrep
find yes yes /usr/bin/find
findfs no no aucun
fold no yes /usr/bin/fold
free no yes /usr/bin/free
freeramdisk no no aucun
fsck yes yes /usr/sbin/fsck
fsck.ext2 yes yes /usr/sbin/fsck.ext2, /usr/sbin/e2fsck
fsck.ext3 yes yes /usr/sbin/fsck.ext3, /usr/sbin/e2fsck
fsck.minix no no aucun — pas de prise en charge du système de fichiers Minix
ftpget yes yes /usr/bin/ftp ou Python ftplib module
ftpput yes yes /usr/bin/ftp ou Python ftplib module
fuser no yes /sbin/fuser
getopt no yes /usr/bin/getopt
getty no no aucun
grep yes yes /sbin/grep, /usr/bin/grep
gunzip yes yes /usr/bin/gunzip, /usr/bin/gzip -d
gzip yes yes /usr/bin/gzip
hdparm yes yes /usr/sbin/hdparm
head yes yes /usr/bin/head
hexdump no yes /usr/bin/hexdump
hostid no yes /usr/bin/hostid or Python
hostname yes yes /sbin/hostname, /usr/bin/hostname
httpd no no aucun — aucun démon disponible pour les scriptlets
hush no no aucun
hwclock yes yes /usr/sbin/hwclock
id no yes /usr/bin/id ou Python
ifconfig yes yes /sbin/ifconfig, /usr/sbin/ifconfig
ifdown no no ifconfig device down
ifup no no ifconfig device up
inetd no no aucun — aucun démon disponible pour les scriptlets
insmod yes yes /sbin/insmod, /usr/sbin/insmod
install no yes /usr/bin/install ou mkdir/cp/chmod/chown/chgrp
ip yes yes /sbin/ip, /usr/sbin/ip
ipaddr no no ifconfig ou ip
ipcalc yes yes /sbin/ipcalc, /usr/bin/ipcalc
ipcrm no yes /usr/bin/ipcrm
ipcs no yes /usr/bin/ipcs
iplink no no ip
iproute no no ip
iptunnel no yes /sbin/iptunnel
kill yes yes /sbin/kill, /usr/bin/kill
killall yes yes /usr/bin/killall
lash no no aucun
last no yes /usr/bin/last
length no no Python ou bash
less yes yes /usr/bin/less
linux32 no no aucun
linux64 no no aucun
ln yes yes /sbin/ln, /usr/bin/ln
load_policy yes yes /sbin/load_policy, /usr/sbin/load_policy
loadfont no no aucun
loadkmap no no aucun
login yes yes /usr/bin/login
logname no yes /usr/bin/logname
losetup yes yes /usr/bin/losetup
ls yes yes /usr/bin/ls
lsattr yes yes /usr/bin/lsattr
lsmod yes yes /usr/bin/lsmod
lzmacat no yes /usr/bin/lzmadec
makedevs no no /usr/bin/mknod
md5sum yes yes /usr/bin/md5sum
mdev no no aucun
mesg no yes /usr/bin/mesg
mkdir yes yes /sbin/mkdir, /usr/bin/mkdir
mke2fs yes yes /usr/sbin/mke2fs
mkfifo no yes /usr/bin/mkfifo
mkfs.ext2 yes yes /usr/sbin/mkfs.ext2
mkfs.ext3 yes yes /usr/sbin/mkfs.ext3
mkfs.minix no no aucun — pas de prise en charge des systèmes de fichiers Minix
mknod yes yes /usr/bin/mknod
mkswap yes yes /usr/sbin/mkswap
mktemp yes yes /usr/bin/mktemp
modprobe yes yes /sbin/modprobe, /usr/sbin/modprobe
more yes yes /usr/bin/more
mount yes yes /sbin/mount, /usr/bin/mount
mountpoint no no Regardez la sortie de la commande de montage
msh no no aucun
mt yes yes /usr/bin/mt
mv yes yes /usr/bin/mv
nameif no no aucun
nc no yes /usr/bin/nc
netstat no yes /bin/netstat
nice no yes /bin/nice
nohup no yes /usr/bin/nohup
nslookup yes yes /usr/bin/nslookup
od no yes /usr/bin/od
openvt yes yes /usr/bin/openvt
passwd no yes /usr/bin/passwd
patch no yes /usr/bin/patch
pidof yes yes /usr/sbin/pidof
ping yes yes /usr/bin/ping
ping6 no yes /bin/ping6
pipe_progress no no aucun
pivot_root no yes /sbin/pivot_root
printenv no yes /usr/bin/printenv
printf no yes /usr/bin/printf
ps yes yes /usr/bin/ps
pwd yes yes /usr/bin/pwd
rdate no yes /usr/bin/rdate
readlink yes yes /sbin/readlink, /usr/bin/readlink
readprofile no yes /usr/sbin/readprofile
realpath no no Python os.path.realpath()
renice no yes /usr/bin/renice
reset no yes /usr/bin/reset
rm yes yes /sbin/rm, /usr/bin/rm
rmdir yes yes /sbin/rmdir, /usr/bin/rmdir
rmmod yes yes /sbin/rmmod, /usr/bin/rmmod
route yes yes /sbin/route, /usr/sbin/route
rpm yes yes /usr/bin/rpm
rpm2cpio no yes /usr/bin/rpm2cpio
run-parts no no aucun
runlevel no no aucun
rx no no aucun
sed yes yes /sbin/sed, /usr/bin/sed
seq no yes /usr/bin/seq
setarch no yes /usr/bin/setarch
setconsole no no aucun
setkeycodes no yes /usr/bin/setkeycodes
setlogcons no no aucun
setsid no yes /usr/bin/setsid
sh yes yes /sbin/sh, /usr/bin/sh
sha1sum yes yes /usr/bin/sha1sum
sleep yes yes /sbin/sleep, /usr/bin/sleep
sort yes yes /usr/bin/sort
start-stop-daemon no no aucun
stat no yes /usr/bin/stat ou Python os.stat()
strings no yes /usr/bin/strings
stty no yes /bin/stty
su no yes /bin/su
sulogin no yes /sbin/sulogin
sum no yes /usr/bin/sum
swapoff yes yes /usr/sbin/swapoff
swapon yes yes /usr/sbin/swapon
switch_root no yes /sbin/switch_root
sync yes yes /usr/bin/sync
sysctl no yes /sbin/sysctl
tail yes yes /usr/bin/tail
tar yes yes /usr/bin/tar
tee yes yes /usr/bin/tee
telnet yes yes /usr/bin/telnet
telnetd no no aucun — aucun démon disponible pour les scriptlets
test no yes /usr/bin/test ou [ en bash
tftp no yes /usr/bin/tftp
time no yes /usr/bin/time ou Python
top yes yes /usr/bin/top
touch yes yes /sbin/touch, /usr/bin/touch
tr no yes /usr/bin/tr ou Python
traceroute no yes /bin/traceroute
true yes yes /usr/bin/true
tty no yes /usr/bin/tty
tune2fs yes yes /usr/sbin/tune2fs
udhcpc no no /sbin/dhclient
udhcpd no no aucun — aucun démon disponible pour les scriptlets
umount yes yes /sbin/umount, /usr/bin/umount
uname no yes /bin/uname ou Python os.uname()
uncompress no no aucun
uniq yes yes /usr/bin/uniq
unix2dos no no sed 's/$//'
unlzma no yes /usr/bin/unlzma
unzip no yes /usr/bin/unzip
uptime no yes /usr/bin/uptime ou lecture Python/proc/uptime
usleep no yes /bin/usleep ou Python
uudecode no yes /usr/bin/uudecode ou Python
uuencode no yes /usr/bin/uuencode ou Python
vconfig yes yes /usr/sbin/vconfig
vi yes yes /usr/bin/vi
vlock no no aucun
watch no yes /usr/bin/watch
watchdog no no aucun
wc yes yes /usr/bin/wc
wget yes yes /sbin/wget, /usr/bin/wget
which no yes /usr/bin/which
who no yes /usr/bin/who
whoami no yes /usr/bin/whoami
xargs yes yes /usr/bin/xargs
yes no yes /usr/bin/yes
zcat yes yes /usr/bin/zcat
zcip no no NetworkManager devrait pouvoir s'en occuper
[a] Red Hat Enterprise Linux 6 est envoyé avec GNU awk plutôt qu'avec busybox awk dans l'environnement d'installation.
[b] GNU bash peut fournir la fonctionnalité de nom de base (de l'anglais « basename functionality ») à l'aide de la manipulation de chaînes. Si var="/usr/bin/command", alors echo ${var##*/} donne command.
[c] GNU bash peut fournir la fonctionnalité dirname à l'aide de la manipulation de chaînes. Si var="/usr/bin/command", alors echo ${var%/*} donne /usr/bin.