Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#27

AW: Ubuntu-Installation fehlerhaft o.ä.

  Alt 19. Dez 2010, 20:13
Hier ein paar Befehle:

Code:
# APT Cache aktualisieren
apt-get update
# Neuere Versionen installieren
apt-get dist-upgrade
# ... oder
apt-get upgrade
# APT Cache durchsuchen
apt-cache search [Begriff]
# Paket installieren
apt-get install [Paketname]
# Neu installieren
apt-get --reinstall install [Paketname]
# Entfernen
apt-get remove [Paketname]
# "Gründlicheres" Entfernen
apt-get --purge remove [Paketname]
# Nachgucken welches Paket mit bestimmtem Begriff/Namensteil installiert sind
dpkg -l|grep '^ii'|grep 'Begriff'
In der /etc/sudoers kann man einstellen, daß kein Paßwort angefordert werden soll, wenn man sudo benutzt. Bspw. für die Gruppe sudo:

Code:
%sudo ALL=(ALL) NOPASSWD: ALL
Achtung, das birgt natürlich gewisse Risiken, daher ist es vielleicht angebrachter sich bequemeren Zugang zu bestimmten Befehlen zu verschaffen, bspw. (/etc/sudoers):

Code:
User_Alias ADMINS=oliver
Cmnd_Alias MISC_CMDS=/usr/bin/apt-get,/usr/bin/apt-cache,/usr/bin/dpkg,/usr/bin/aptitude
ADMINS ALL=(root) NOPASSWD: MISC_CMDS
Hierbei sollten immer absolute Pfade zu den Programmen verwendet werden.

Ich persönlich setze mir dann auch noch Aliase in Bash, bspw. (.bash_aliases):

Code:
alias search='apt-cache search'
alias upgrade='apt-get update && apt-get dist-upgrade'
alias apt-get='sudo /usr/bin/apt-get'
Desweiteren passe ich mir meine Shell an (.bashrc):

Code:
# ~/.bashrc: executed by bash(1) for non-login shells.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# The prompt command will only show the current directory and username if the terminal type is "correct"
[ "$TERM" == "xterm" -o "$TERM" == "rvxt" ] && export PROMPT_COMMAND='echo -ne "\033]0;${debian_chroot:+($debian_chroot)}${USER}@${HOSTNAME}: ${PWD}\007"'

# Because UID is readonly we cannot use the real thing, so let's fake it below ;)
MYUID=$UID

# On Windows the superuser has the UID (RID) 500, make it appear as root
[ -n "$COMSPEC" ] && [ $MYUID -eq 500 ] && { let MYUID=0; }

# Superuser will get a timeout for the shell if it's a remote shell via SSH
[ -n "$SSH_TTY" ] && [ $MYUID -eq 0 ] && export TMOUT=1800

export IGNOREEOF=2
export CDPATH=/mnt
[ -d "~/bin" ] && export PATH=$PATH:~/bin
# Remove empty entries
export PATH=${PATH//::/:}

if [ $MYUID -eq 0 ]; then
        export PS1='${debian_chroot:+($debian_chroot)}\[\033[1;31m\]${SHLVL:+[$SHLVL] }\u\[\033[1;34m\]@\h\[\033[0m\]:\[\033[1;32m\]\w\[\033[0m\]\$ '
        NEWPATH=''
        LASTDIR=''
        for dir in ${PATH//:/ }; do
                LASTDIR=$dir
                [ ! -d $dir ] && continue
                if [ "$(ls -lLd $dir | grep '^d.......w. ')" ]; then
                        echo -e "\nDirectory $dir in PATH was world-writable, removed it from PATH!!!"
                elif [ "$NEWPATH" != "$dir" ]; then
                        NEWPATH=$NEWPATH:$dir
                fi
        done
        # Remove the leading colon and export this as the path
        export PATH=${NEWPATH:1:${#NEWPATH}}
else
        export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]${SHLVL:+[$SHLVL] }\u@\h\[\033[00m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '
fi

# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=erasedups:ignorespace
export HISTIGNORE="&:ls:ll:l:[bf]g:exit:clear"

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
shopt -s cdspell
shopt -s dotglob

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"

ANSI color codes
# ----------------
# Black      0;30     Dark Gray    1;30
# Blue       0;34     Light Blue   1;34
# Green      0;32     Light Green  1;32
# Cyan       0;36     Light Cyan   1;36
# Red        0;31     Light Red    1;31
# Purple     0;35     Light Purple 1;35
# Brown      0;33     Yellow       1;33
# Light Gray 0;37     White        1;37
umask 022

# Alias definitions.
export LS_OPTIONS='--color=auto --time-style=long-iso'
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -all'

# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
alias mc='mc -c'
alias ducks='du -ckhs * |sort -rn |head -11'
alias psaux='ps awux'
alias nano='nano -w'
alias currdate='date +"%Y-%m-%d %H:%M:%S"'
alias ssh='ssh -A -t'

# Aliases in the external file overwrite those above.
if [ -f ~/.bash_aliases ]; then
        source ~/.bash_aliases
fi

# Global Bash completion definitions
if [ -f /etc/bash_completion ]; then
        source /etc/bash_completion
fi

# Load the SSH agent and if it's loaded already, add the default identity
SSHAGENT=$(which ssh-agent)
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
        eval `$SSHAGENT $SSHAGENTARGS`
        [ -n "$SSH_AGENT_PID" ] && trap "kill $SSH_AGENT_PID" 0
fi

# Load additional settings
if [ -d ~/.bashrc.d ]; then
        for f in `ls -A ~/.bashrc.d`; do
                source ~/.bashrc.d/$f
        done
fi
(Wenn c&p nicht funzt, meldet euch bei mir.)

Desweiteren kann ich nur allen empfehlen sich die folgenden Pakete ebenfalls zu installieren:

Code:
byobu
bash-completion
unattended-upgrades
etckeeper
localepurge
Bei etckeeper muß man die Initialisierung händisch vornehmen, kann dann aber jegliche Einstellungsänderungen (manuell oder als Teil des Paketmanagements) rückgängig machen. Wenn man Mercurial bevorzugt, so wie ich, dann sollte man zuerst "mercurial etckeeper" gemeinsam in "apt-get install" angeben. Dann bleibt aber noch die /etc/etckeeper/etckeeper.conf anzupassen um etckeeper einzuweihen, daß man Mercurial zu benutzen gedenkt. Ansonsten benutzt etckeeper entweder Git oder Bazaar in den Versionen die ich bisher so benutzt habe.

Um etckeeper zu nutzen muß man mindestens einmal als Superuser folgendes laufen lassen:
Code:
etckeeper init && etckeeper commit "Initial commit"
Ich gebe oft einem dedizierten Benutzer in meinem System die Aufgabe alle 15min zu committen, damit Änderungen immer unter Versionskontrolle sind. Hat mir schon mehrfach den A...Tag gerettet

Ach ja, Nachtrag: ich sehe schon Proteste kommen wegen "apt-get dist-upgrade". Wenn man wünscht die Distro auf den nächsten Release zu aktualisieren (also bspw. 10.04 auf 10.10) muß man mindestens noch die /etc/apt/sources.list ändern. Aber in Ubuntu gibt es eh bequemere Methoden als diese. Es würde sich hierbei um die Debian-Variante handeln. Jedenfalls wird "apt-get dist-upgrade" nicht auf das neueste Release aktualisieren

Noch'n, Nachtrag: wer den Norton Commander mochte, wird vermutlich Midnight Commander mögen:
Code:
apt-get install unzip mc
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (19. Dez 2010 um 20:26 Uhr)
  Mit Zitat antworten Zitat