Cent5 or RHEL 5 에서의 authconfig 문자 깨짐 해결

김정균의 이미지

CentOS 5 나 RHEL 5 에서 euc-kr locale 을 사용할 경우 authconfig나 authconfig-tui 를 실행하면 한글이 깨지는 문제가 있습니다. 이는 authconfig 에서 mo 파일을 utf8 로 변경을 시도해서 발생하는 문제입니다. 이를 해결하기 위해서 다음과 같이 패치를 하시면 됩니다.

일단 locale 이 UTF8 을 사용하시거나 별로 관심 없으면 skip 하시기 바랍니다. 제가 잊어버리지 않기 위한 기록으로 남겨 놓습니다.

diff -ruNp authconfig-5.3.12.org/authconfig.py authconfig-5.3.12/authconfig.py
--- authconfig-5.3.12.org/authconfig.py 2006-10-21 03:09:34.000000000 +0900
+++ authconfig-5.3.12/authconfig.py 2008-04-23 19:40:45.000000000 +0900
@@ -769,7 +769,14 @@ class AuthconfigTUI(Authconfig):
 
 if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal.SIG_DFL)
-   textdomain("authconfig")
+
+   if ( os.environ.has_key('LANG') and os.environ['LANG'] == 'ko_KR.euckr' ) :
+       del _, textdomain
+       cat = gettext.Catalog ('authconfig', localedir='/usr/share/locale')
+       _ = cat.gettext
+   else :
+       textdomain("authconfig")
+
    if runsAs("authconfig-tui"):
        # deprecated TUI
        module = AuthconfigTUI()

좀 더 유연하게 짤 수 있을 거 같은데, 제가 python 문법에 아직 익숙하지를 않아서 일단 나가야 하는 관계로 대충 만들었습니다. 일단 나갔다 와서 좀더 유연하게 해 볼 생각입니다.

댓글

김정균의 이미지

코드를 좀 잘 읽어서 제대로 수정해 보았습니다. 이 버그는 https://bugzilla.redhat.com/show_bug.cgi?id=443956 에 보고를 해 놓은 상태입니다.

diff -urNp authconfig-5.3.12.org/authconfig.py authconfig-5.3.12/authconfig.py
--- authconfig-5.3.12.org/authconfig.py 2006-10-21 03:09:34.000000000 +0900
+++ authconfig-5.3.12/authconfig.py 2008-04-24 19:19:24.000000000 +0900
@@ -23,9 +23,13 @@
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
 
+import locale
 import authinfo, acutil
 import gettext, os, signal, sys
-from rhpl.translate import _, textdomain
+from rhpl.translate import _, N_, textdomain_codeset
+locale.setlocale(locale.LC_ALL, "")
+textdomain_codeset('authconfig', locale.nl_langinfo(locale.CODESET))
+
 from optparse import OptionParser
 
 def runsAs(name):
@@ -769,7 +773,6 @@ class AuthconfigTUI(Authconfig):
 
 if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal.SIG_DFL)
-   textdomain("authconfig")
    if runsAs("authconfig-tui"):
        # deprecated TUI
        module = AuthconfigTUI()

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.