2016-11-13 6 views
2

ghc가 생성 한 실행 파일이 있다고 가정 해 봅니다. 이제 나는 을 알고 싶다. (특정 라이브러리의 버전은 베이스/< 다른 라이브러리를 여기에 삽입 한 것과 같이?)?하스켈 실행 파일의 라이브러리 의존성 버전 찾기

찾을 수 있습니까?

더 구체적인 질문 - 내 stack 실행 파일에서 Cabal 라이브러리의 버전을 확인하고 싶습니다.

+0

프로젝트 폴더 안에 있다면'스택 목록 의존성 '을 실행하여'Cabal'의 버전이 사용되고 있는지 확인할 수 있습니다. 그게 네가 원하는게 아니야. – Alec

+0

@Alec 고마워, 그래, 내가 원하는 건 아니야. 나는 단지 실행 파일로부터 의존성의 라이브러리 버전을 찾고 싶다. – Sibi

답변

0

이 대답은 #haskell irc의 @ongy에게 감사드립니다.

정보를 찾으려면 GNU의 strings 유틸리티를 사용할 수 있습니다. Cabal 내 스택 실행 파일의 버전이 사용 를 찾으려면,이 작업을 수행 할 수 있습니다

strings ~/.local/bin/stack | grep -i Cabal- 

큰 문자열을 뱉어 내가 거기에 정보의 조각을 찾을 수 :

/tmp/stack-upgrade7565/stack/.stack-work/install/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/stack-1.2.1-IEWywJcSJuzIIEqkeEd87k:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.17/7.10.3/lib/x86_64-linux-ghc-7.10.3/Cabal-1.22.8.0-Ku2CIqstfjg7Z2SNHUypWH:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/Glob-0.7.11-0WpLeizIORG0eUMRaKlYmO:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-li.... 

그리고 그 안에 Cabal-1.22.8.0이 있습니다.

당신이 할 수 있으며, base 라이브러리 버전을 찾으려면 우리는 기본을 찾을 수 있습니다 에서 GHC 버전을 뱉어

executable +RTS --info. 예 :

$ stack +RTS --info 
[("GHC RTS", "YES") 
,("GHC version", "7.10.3") 
,("RTS way", "rts_thr") 
,("Build platform", "x86_64-unknown-linux") 
,("Build architecture", "x86_64") 
,("Build OS", "linux") 
,("Build vendor", "unknown") 
,("Host platform", "x86_64-unknown-linux") 
,("Host architecture", "x86_64") 
,("Host OS", "linux") 
,("Host vendor", "unknown") 
,("Target platform", "x86_64-unknown-linux") 
,("Target architecture", "x86_64") 
,("Target OS", "linux") 
,("Target vendor", "unknown") 
,("Word size", "64") 
,("Compiler unregisterised", "NO") 
,("Tables next to code", "YES") 
] 

위의 팁에 @MarcelineVQ에게 감사드립니다.