it-swarm.com.de

Wenn ich ein Terminal öffne, wird vor Befehlen "PKG_CONFIG: Befehl nicht gefunden" angezeigt.

Wenn ich mein Terminalfenster öffne, sehe ich diese Zeichenfolge

PKG_CONFIG: Befehl nicht gefunden

Warum erscheint es? Es wird automatisch angezeigt, sobald ich das Terminalfenster öffne

The error image

Hier ist die Ausgabe von cat ~/.bashrc Befehl

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

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

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

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

# set variable identifying the chroot you work in (used in the Prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy Prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_Prompt=yes;;
esac

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes

if [ -n "$force_color_Prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_Prompt=yes
    else
    color_Prompt=
    fi
fi

if [ "$color_Prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
fi
unset color_Prompt force_color_Prompt

# If this is an xterm set the title to [email protected]:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  Elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Und hier ist die Ausgabe von cat /etc/bash.bashrc Befehl

# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

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

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

# set variable identifying the chroot you work in (used in the Prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy Prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '

# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to [email protected]:dir
#case "$TERM" in
#xterm*|rxvt*)
#    Prompt_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
#    ;;
#*)
#    ;;
#esac

# enable bash completion in interactive shells
#if ! shopt -oq posix; then
#  if [ -f /usr/share/bash-completion/bash_completion ]; then
#    . /usr/share/bash-completion/bash_completion
#  Elif [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#  fi
#fi

# Sudo hint
if [ ! -e "$HOME/.Sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
    case " $(groups) " in *\ admin\ *|*\ Sudo\ *)
    if [ -x /usr/bin/Sudo ]; then
    cat <<-EOF
    To run a command as administrator (user "root"), use "Sudo <command>".
    See "man Sudo_root" for details.

    EOF
    fi
    esac
fi

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                Elif [ -x /usr/share/command-not-found/command-not-found ]; then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi
PKG_CONFIG PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

Und das ist die Ausgabe von cat /etc/profile Befehl

# /etc/profile: system-wide .profile file for the Bourne Shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
1
Kordy

Lauf Sudo -H gedit /etc/bash.bashrc und entfernen Sie die letzte Zeile in dieser Datei.

1
Pilot6

Die Absicht der Zeile am Ende von /etc/bash.bashrc, Die einen Syntaxfehler enthielt, bestand darin, am Ende von der Umgebungsvariablen PKG_CONFIG_PATH ein Verzeichnis hinzuzufügen. Wenn VARNAME der Name einer Umgebungsvariablen ist, die Text enthält, der aus mehreren : - getrennten Einträgen besteht, ist dies eine gemeinsame Redewendung schreiben Dinge wieVARNAME=$VARNAME:otherstuff. (Obwohl VARNAME="$VARNAME:otherstuff" oft besser ist; siehe unten.) In Ihrem Fall wurde ein fehlerhaftes Leerzeichen zu PKG_CONFIG_PATH auf der linken Seite des = hinzugefügt. unterschreiben, was zu deinem Fehler führt.


Wenn Sie die Umgebungsvariable PKG_CONFIG_PATH Nicht setzen müssen , dann Pilot6s Antwort nur das entfernen Zeile mit dem Syntaxfehler

PKG_CONFIG PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

ab dem Ende von /etc/bash.bashrc ist der beste Ansatz.

Wenn Sie jedoch benötigen, um PKG_CONFIG_PATH Festzulegen, sollten Sie den Syntaxfehler beheben, indem Sie das fehlerhafte Leerzeichen in PKG_CONFIG PATH mit einem _ so lautet es PKG_CONFIG_PATH:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

Oder Sie möchten diese Umgebungsvariable einfach an einer anderen Stelle festlegen. Die systemweite Datei bashrc ist im Allgemeinen kein empfohlener Ort zum Festlegen von Umgebungsvariablen. Siehe EnvironmentVariables für Details.

Sie können manchmal auch die gesamte oder einen Teil der rechten Seite einer Aufgabe in doppelten Anführungszeichen sehen:

PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"

Obwohl nicht unbedingt erforderlich (in Bash ), kann dies als stilistisch vorzuziehen angesehen werden. In most Situationen sollten Umgebungsvariablen, die Leerzeichen enthalten könnten, in "" Eingeschlossen werden, wenn sie erweitert werden ($). Die Zuweisung ist eine Ausnahme, wenn explizite Anführungszeichen sind nicht unbedingt erforderlich .

Ich wiederhole jedoch, dass dies alles nur dann ist, wenn Sie tatsächlich PKG_CONFIG_PATH Einstellen müssen. Wenn Sie nicht sicher sind, wie diese Zeile in /etc/bash.bashrc Gelangt ist, empfehle ich, sie nicht zurückzusetzen. Ich empfehle, den Rat in Antwort von Pilot6 zu befolgen, es sei denn, Sie müssen tatsächlich dafür sorgen, dass die Definition der fehlerhaften Umgebungsvariablen funktioniert.


Wenn Sie sich schließlich fragen , warum Sie diese Fehlermeldung erhalten haben und wie sie zu interpretieren ist, bedeutet dies, dass die Shell versucht hat, einen aufgerufenen Befehl auszuführen PKG_CONFIG. Es gibt keinen solchen Befehl auf Ihrem System (und sollte es auch nicht sein). Da das zweite _ In PKG_CONFIG_PATH Stattdessen als Leerzeichen geschrieben wurde, war das erste Wort der Zeile keine Zuweisung (kein = Vor dem erstes Leerzeichen), so dass Word als Name des auszuführenden Befehls interpretiert wurde. Daher hat die Shell versucht, den Befehl PKG_CONFIG Mit allem anderen in der Zeile auszuführen, das als Befehlszeilenargument interpretiert wird, und command not found Für PKG_CONFIG.

2
Eliah Kagan