Macintosh에서 tcl/tk 그대로도 움직이는데 함정 5 개에 끼웠다.

8784 단어 brewBashTclpathmacos

tcl/tk



tcl/tk의 스크립트를 양으로 기동하는 것은 20년만 정도.

오른쪽도 왼쪽도 모르는 채, 어느 책의 스크립트가 에러가 되기 때문에 자료를 정리.
Macintosh의 10.9(?) 이후에는 Tcl/Tk가 도입이 끝났습니까? 같다.

<이 절은 쓰기입니다. 순차적으로 추가합니다. >

macOS Sierra 10.12.6에서 확인. 덧붙여서, Macintosh에 들어 있는 Tcl/Tk의 wish라는 쉘은 다음과 같이 2개 있었다.
$ ls -al /usr/bin/wish*
lrwxr-xr-x  1 root  wheel    7 12 28  2016 /usr/bin/wish -> wish8.5
-r-xr-xr-x  1 root  wheel  127  7 31  2016 /usr/bin/wish8.4
-r-xr-xr-x  1 root  wheel  127  7 31  2016 /usr/bin/wish8.5

함정 1. tcl/tk가 들어 있지 않다고 생각 도입하려고 했다


$ brew install tcltk
* snip *
Error: No available formula with the name "tcltk" 

함정 2. 철자를 틀렸다.


$ brew install tkltk

Error: No available formula with the name "tkl-tk" 

함정 3. tcl/tk의 brew 패키지가 tcl-tk라고 몰랐다.


$ brew install tcl-tk
* snip *
 /usr/local/Cellar/tcl-tk/8.6.8: 2,849 files, 29.2MB

함정 4. PATH를 잘라 잊었다


$ printenv
* snip 
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/arm-unknown-linux-gnueabihf/bin

PATH의 앞으로, 오래된 버전이 남아 있으면 새로운 버전이 움직이지 않는다.
echo 'puts $tcl_version;exit 0' | wish
8.5

함정 5. PATH를 자르는 방법을 잘못했다.



Macintosh에서 tcl/tk가 작동하지 않는다는 기사를 봅니다.
$ brew install tcl-tk
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/tcl-tk-8.6.8.sierra.bottle.
######################################################################## 100.0%
==> Pouring tcl-tk-8.6.8.sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because tk installs some X11 headers and macOS provides an (older) Tcl/Tk.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/tcl-tk/lib
    CPPFLAGS: -I/usr/local/opt/tcl-tk/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/tcl-tk/lib/pkgconfig

==> Summary
  /usr/local/Cellar/tcl-tk/8.6.8: 2,849 files, 29.2MB

최신 8.6을 도입할 수 있었다. 다만, 낡은 것은 당초부터 들어가 있다. 어떻게 전환합니까?

path


$ printenv
TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.w3cos4WaMR/Render
TERM_PROGRAM_VERSION=388.1.1
TERM_SESSION_ID=6379DDD6-E51B-4C0B-B5E4-3D546D9DC515
USER=brew_manager
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.pdnce1fGFu/Listeners
__CF_USER_TEXT_ENCODING=0x1F6:0x1:0xE
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
...

brew에서 도입한 tcl/tk에 PATH가 끊어지지 않았다.
$ echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

PATH 추가. 확인.
$ printenv
TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.w3cos4WaMR/Render
TERM_PROGRAM_VERSION=388.1.1
TERM_SESSION_ID=6379DDD6-E51B-4C0B-B5E4-3D546D9DC515
USER=brew_manager
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.pdnce1fGFu/Listeners
__CF_USER_TEXT_ENCODING=0x1F6:0x1:0xE
PATH=/usr/local/opt/tcl-tk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
PWD=/Users/administrator
LANG=ja_JP.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
HOME=/Users/brew_manager
SHLVL=2
LOGNAME=administrator
_=/usr/bin/printenv

문자 코드



예를 들어 Linuxx에 저장된 파일을 Macintosh에서 사용하는 경우

bash
$ nkf -s file >! file.tcl

에서 Shift+JIS에.

참고문헌(reference)



Tcl/Tk GUI Programming Tcl/Tk 편의 GUI 프로그래밍 입문편
h tp // w w. 게이오시치에 s. jp / m_히로이 / tcl_tk_도 c / tcltk101. HTML

Wish Tcl/Tk 입문
htp : // f ㅇ x. Phys. 도호쿠. 아 c. jp / te / u sh - 니몬 / 호 w - 토 룬. HTML

참고 문헌 @ Qiita



Tcl에서 여러 변수에 동일한 값을 설정합니다.
htps : // 코 m / 나츠 탄 / ms / 6

Tcl의 배열을 쉽게 직렬화하는 방법
htps : // 이 m / 나츠탄 /

목록에서 최대값 찾기
htps : // 코 m / 나츠 탄 / ms / 9 에cdb5

배열이나 리스트에 사용할 수 있는 멤버 함수
htps : // 이 m / 나츠탄 / ms / 075940362 에 d9d4

Tcl/Tk로 상태 표시줄 만들기
htps : // 이 m/나츠탄/있어 ms/37927112887fdcb42f19

Tcl/Tk로 물리적 시뮬레이션
htps : // 코 m / 우비 이스 쿠 / ms / f5cf6에 df2 또는 814df107

Tcl/Tk에서 Hello, world!
htps : // 이 m/쿠ぉぉp/있어 ms/b121261d3406611d0f19

tcl/tk로 이미지 크기 조정
htps : // 이 m/미미 없음/있어 ms/c2에66에98249f000아9d48

Tcl/Tk로 프로그램 작성 (1)
htps : // 코 m / 아키노 리이 토 / MS / 92 또는 39617773 A 2f48 0b

Tcl/Tk로 프로그램 작성 (2)
htps : // 코 m / 아키노 리 - / ms / 아 6 아베 82f4c814272f06c

Tcl/Tk로 프로그램 작성 (3)
htps : // 이 m/아키노리-이토/있어 ms/919에 dfd6c52cf0b37247

Tcl/Tk로 상태 표시줄 만들기
htps : // 이 m/나츠탄/있어 ms/37927112887fdcb42f19

Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)
htps : // 이 m / gps 똥 jp / ms / d69c51cbd34d8178이다 f9

Visual Studio 2017에서 Tcl/Tk 8.6.9 컴파일
htps : // 이 m / t / / ms / 4459 bd6bd86871 a cb8b

멀티 플랫폼 GUI 만들기에 도전 ~tcl/tk의 환경 구축~
htps : // 이 m/jmts응/있어 ms/76314010647c15113920

Tcl/Tk로 유파를 실장해 본다
htps : // 이 m / ぉぉ p / ms / 11f0678 예 b83003903b8

<이 기사는 개인의 과거 경험을 바탕으로 개인의 감상입니다. 현재 소속된 조직, 업무와는 관계가 없습니다. >

문서 이력(document history)



ver. 0.01 초고 20180227
ver. 0.02 추가 20180323
ver. 0.03 참고 자료 가필 20201220
ver. 0.04 체재 정비 20210722

좋은 웹페이지 즐겨찾기