Solaris 11.4 SRU24 ~ SRU26 에서 버그로 인해 해결이 안되고, work-around로 처리해야 한다



  • ValueError: character [$val] is not in range [$val1; $val2]
   : Solaris 에서 ValueError는 ko_KR.EUC 같은 설치되지 않은 locale을 사용할때 발생한다

 - Error 내용
[root@SA-OCM3:~:#] pkg info entire
Traceback (most recent call last):
  File "/bin/pkg", line 5668, in handle_errors
    __ret = func(*args, **kwargs)
  File "/bin/pkg", line 5654, in main_func
    pargs=pargs, **opts)
  File "/bin/pkg", line 3081, in info
    info_local, info_remote, origins, quiet)
  File "/usr/lib/python3.7/vendor-packages/pkg/client/client_api.py", line 2284, in _info
    ranked=info_remote, repos=origins)
  File "/usr/lib/python3.7/vendor-packages/pkg/client/api.py", line 211, in wrapper
    return f(instance, *fargs, **f_kwargs)
  File "/usr/lib/python3.7/vendor-packages/pkg/client/api.py", line 4380, in info
    version.get_timestamp().strftime(
  File "/usr/lib/python3.7/vendor-packages/pkg/version.py", line 393, in get_timestamp
    t = time.strptime(self.timestr, "%Y%m%dT%H%M%SZ")
  File "/usr/lib/python3.7/_strptime.py", line 277, in <module>
    _TimeRE_cache = TimeRE()
  File "/usr/lib/python3.7/_strptime.py", line 191, in __init__
    self.locale_time = LocaleTime()
  File "/usr/lib/python3.7/_strptime.py", line 70, in __init__
    self.__calc_weekday()
  File "/usr/lib/python3.7/_strptime.py", line 92, in __calc_weekday
    a_weekday = [calendar.day_abbr[i].lower() for i in range(7)]
  File "/usr/lib/python3.7/_strptime.py", line 92, in <listcomp>
    a_weekday = [calendar.day_abbr[i].lower() for i in range(7)]
  File "/usr/lib/python3.7/calendar.py", line 82, in __getitem__
    return funcs(self.format)
ValueError: character U+30001ff9 is not in range [U+0000; U+10ffff]

pkg: kg(7)  b'3beb69dcf209'  ޽


 - 일반적인 해결 방법은 system/locale/extra 를 설치해주면 된다
[root@SA-OCM3:~:#] pkg install system/locale/extra


 - Solaris 11.4 SRU24 부터 26까지 work-around
  버그로 SRU27에서 해결이 되었으니, 패치를 하거나 work-around 적용해야 한다
  해당 이슈는 Solaris의 명령어가 python2.7에서 3.7로 변경되면서 발생하는 문제로, pkg 같은 엔지니어가 수행하는 시스템명령어에서만 발생하므로 아래와같이 적용할 수 있다
[root@SA-OCM3:~:#] unset $(env | awk -F'=' '$1 ~ /^LC_/{print $1;}')


[root@SA-OCM3:~:#] pkg info entire



반응형

+ Recent posts