comibear
article thumbnail
Published 2023. 4. 16. 17:12
How to Install Sagemath etc

예전에 WSL 쓸 때 sagemath 를 정말 고생하면서 깔았는데, 이번에 shell 링크들이 복잡해져서 우분투가 고장나버렸다.. 그래서 WSL 초기화하고 새로 깔았는데, 다시 크립토 공부하려다 보니 Sage 가 없었다... ㅠㅠ 그래서 다시 까려는 도중 뒤지게 많은 에러들을 마주하며 포스팅해서 나중에 쉽게 깔 수 있도록 해야겠다는 생각이 들어 포스팅을 시작하게 되었다.

sudo apt update error (hash mismatch)

$ sudo su -
$ apt-get clean
$ rm -rf /var/lib/apt/lists/*
$ apt-get update -o Acquire::CompressionTypes::Order::=gz

만약 여기서도 오류가 발생한다면, 아래 코드 추가 실행하기

$ mkdir /etc/gcrypt
$ echo all >> /etc/gcrypt/hwf.deny

그래도 안되면 소스 링크를 mirror 로 바꿔주기

$ sudo sed -i 's/us.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list

SageMath download (python lib)

$ sudo apt-get install sagemath

제대로 설치되었는지 확인해보자 !!

root@Comibear:~# python3
Python 3.8.10 (default, Mar 13 2023, 10:26:41)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sage.all import *
>>> sage
<module 'sage' from '/usr/lib/python3/dist-packages/sage/__init__.py'>
>>>

히히 굿굿

Sagemath download (console)

Sage 를 Python 인터프리터처럼 실행할 수 있어야 하는데,, (Python 에서 sage.all 을 import 하고 난 후에도 문법상 맞지 않는 구문들이 존재하기 때문에 솔직히 sage 잘 쓰려면 shell 에서 인터프리터로 사용하는 것이 낫다..)

 

그래서 처음에 linux 쉘을 이용해서 다운로드 하려고 별 짓을 다 해봤지만 결국 실패했는데, ChatGPT 님이 제대로 된 해결책을 제시해주셨다.. 감격...

 

결국 ChatGPT 4까지 구매해서 문제를 해결했는데,, 돈까지 냈는데 3시간당 질문을 24개까지만 안받는다고..? 무슨 연예인이랑 채팅하는 것도 아니고;; (예전에는 더 널널했는데 구매 회원이 많아져 점점 줄어든다고 한다 ㅠ)

 

여튼 답변의 퀄리티는 생각 이상으로 좋아서 나름대로 만족하는 중이다.

다시 본론으로 돌아가서 Install 방법에 대해서 얘기해보자.

$ sudo apt update
$ sudo apt upgrade

(거의 모든 작업 이전에 해주는 것이 마음 편하다)

$ sudo apt install build-essential m4 git gcc g++ gfortran make perl tar

Sage 빌드에 필요한 각각 라이브러리들을 미리 설치해주자.

$ mkdir ~/sage_source
$ cd ~/sage_source
$ git clone https://github.com/sagemath/sage.git
$ cd sage

그 후에 sage 깃허브 홈페이지에서 클론받기 위해 폴더를 만들어주고 그 내부로 들어가서 클론받기

$ make
$ sudo make install

그다음 빌드하고 Install 해주면 되는데, 이 부분은 시간이 상당히 많이 걸릴 것이기 때문에 날 잡고 해주는 게 좋다. 나의 경우는 이거 하느라 이틀 걸림,, (물론 카페에서 나가고 자고 일어나고 다 포함해서 걸려서 아마 3시간,, 정도 생각)

$ find . -name "sage" -type f -executable

실행할 수 있는 sage executable 파일을 찾아주는데, 보통 ./src/bin/sage 에 존재할 것이다. 그래서 이 파일로 usr/local/bin 에다가 심볼릭 링크를 걸어주면 된다 !!

$ sudo ln -s ~/sage_source/sage/src/bin/sage /usr/local/bin/sage

고생하셨습니다..나 자신.. (진짜 하는데 3일 넘게 걸림)

아직 안정적인 버전은 아니라고 하지만,, LLL 사용해보니 제대로 돌아간다 ㅎㅎ 그럼 됐지 ^^

 

여담으로, pwntools 와 같은 라이브러리를 호출하기 위해서는 sage 가 돌아가는 python 에서 pip 로 다운로드 해야 한다고 하더라,, 이거 계속 해주는 게 조금 귀찮겠지만 어쩔 수 없나보다. 혹시라도 기존에 local 에서 돌아가는 python3 위에 sage 를 attach 하는 방법에 대해서 아시는 분이 계시다면 페이지 오른쪽 아래에 연락하거나 댓글 부탁.. (소정의 상품 증정 예정)

$ sage -sh -c "which python"
$ <sage_python> -m pip install pwntools

'etc' 카테고리의 다른 글

제 27회 하계 해킹캠프 참가 후기  (1) 2023.08.29
profile

comibear

@comibear

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그