Ich habe immer die folgende Fehlermeldung erhalten, wenn ich SVN auf meinem Server verwende:
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LC_CTYPE is UTF-8
svn: warning: please check that your locale name is correct
meine Vermutung ist, dass mit meinem SVN-Client (Using Versions App) und dem Server SVN etwas nicht stimmt.
wie kann ich diese Warnung für immer vom Server verschwinden lassen, wenn ich solche Befehle verwende?
Überprüfen Sie die Ausgabe von
locale -a
Wenn das Gebietsschema, über das sich der SVN beschwert, nicht installiert ist, können Sie es installieren.
Möglicherweise müssen Sie Folgendes tun:
Sudo apt-get install language-pack-en-base
gefolgt von einem von (abhängig vom genauen Fehler von SVN ist der erste Fall Ihr):
Sudo locale-gen UTF-8
Sudo locale-gen en_GB.UTF-8
Sudo locale-gen en_US.UTF-8
Alternativ, wie Ankit in seine Antwort schreibt :
export LC_ALL=C
funktioniert möglicherweise (in Ihrer aktuellen Sitzung oder in Ihrem .profile).
Obwohl LC_CTYPE auf einen leeren Wert gesetzt wurde, funktionierte es für mich. Der Grund dafür war, dass das App-Terminal auf meinem Mac die Gebietsschemas beim Start festlegte, selbst wenn ich ein SSH auf ein anderes System stelle.
Dies kann in Terminal> Preferences behoben werden:
Wenn Sie dies beheben möchten, setzen Sie die Variable „LC_ALL“ manuell.
Um es dauerhaft zu machen, bearbeiten Sie einfach die Datei "/ etc/environment" und fügen Sie die Zeile hinzu:
LC_ALL=C
Speichern Sie die Datei und verlassen Sie den Editor. Damit es angewendet werden kann, müssen Sie sich von der aktuellen Shell-Sitzung abmelden. Wenn Sie sich das nächste Mal anmelden, ist das Problem mit SVN verschwunden.
LC_ALL und LANG-Einstellungen funktionierten nicht für mich, LC_CTYPE jedoch.
LC_CTYPE=en_US.UTF-8
Auf Debian Jessie :
Ich rannte:
Sudo dpkg-reconfigure locales
Das fehlende Gebietsschema wurde hinzugefügt und installiert.
das Auskommentieren der Zeilen mit SendEnv LANG LC_*
in/etc/ssh/ssh_config hilft mir (openSUSE)
Dies wird dadurch verursacht, dass auf Ihrem System nicht die richtigen Ländereinstellungen generiert wurden.
Nicht kommentierte Zeilen, die Sie in /etc/locale.gen unterstützen möchten.
Zum Beispiel:
en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
und dann ausführen Sudo locale-gen
Dieses Problem hatten wir auch in unserem Unternehmen, wenn Sie IntelliJ verwenden. Ein Kollege von mir hat es gerade repariert.
Für uns war das Problem die Zeile SendEnv LANG LC_*
in /etc/ssh/ssh_config
. Als ich diese Zeile auskommentierte, funktionierte alles gut.
Für iTerm2:
Profile → Offene Profile… → Profile bearbeiten… → Terminal → Uncheck Gebietsschemavariablen automatisch setzen
Ich habe festgestellt, dass das Kombinieren mehrerer Antworten das richtige Verhalten ergibt.
Dies hängt davon ab, welche Arten von Dateinamen Sie in Ihrer Quellstruktur haben. Zum Beispiel habe ich Englisch, Hebräisch und Arabisch. en_US.UTF-8 funktioniert für mich "C", da es zu Dateien führte, die ich nicht aktualisieren konnte.
Ich habe das Problem, wenn ich mich mit einem Remote-SSH-Server verbinde (SSH wird vom Befehl svnserve -> svn update verwendet).
Der Grund ist, dass auf dem Remote-Server nicht das Sprachpaket verfügbar ist, das auf dem lokalen Server in $ LANG festgelegt ist.
Sie können die installierten Sprachpakete über 'locale -a' überprüfen. Die Sprache $ LANG muss auf dem Remote-Server konfiguriert sein.
Z.B.
Lokaler Server: LANG = de_US.UTF-8
Remote-Server: locale -a -> nur de_DE.UTF-8 ist verfügbar
Lösung: Installieren Sie einfach das fehlende Sprachpaket auf dem Remote-Server: dpkg-reconfigure-Ländereinstellungen;
Übrigens: Die ausgewählte Standardsprache spielt keine Rolle.