일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 컨트렉트 배포 자동화
- rust 기초
- ethers typescript
- ambiguous function description
- 머신러닝기초
- erc4337
- erc4337 contract
- 오블완
- SBT표준
- ethers
- 러스트기초
- git rebase
- Vue
- Vue.js
- 스마트컨트렉트 예약어 함수이름 중복
- chainlink 설명
- 스마트컨트렉트테스트
- ethers v6
- multicall
- ethers websocket
- 러스트 기초 학습
- vue기초
- 러스트 기초
- 티스토리챌린지
- ethers type
- 컨트렉트 동일한 함수이름 호출
- 스마트컨트렉트 함수이름 중복 호출
- 체인의정석
- 계정추상화
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
체인의정석
운영체제, 터미널의 구조와 그에 따른 환경 변수의 설정 (direnv 사용) 본문
먼저 OS를 기준으로 보았을 때
맥 OS자체는 리눅스에서 포크된 하나의 복사된 운영체제로 볼 수 있다.
따라서 기본적으로 리눅스의 기본 설정값을 따르고 있으며 이후, 환경 변수를 설정해주면 맥 OS 단계에서 환경변수가 설정되게 된다.
같은 원리로 만약 터미널을 키고 바로 환경 변수를 설정해주면 그 이후의 다른 값들은 해당 환경 변수를 따르게 되고, 환경변수가 많아질 경우 예기치 못한 에러가 나고 뒤죽박죽이 될 수 있다.
여기에 따라 나오는 것이 바로 direnv라고 할 수 있다.
direnv를 사용한 디렉토리(프로젝트) 별 개발환경 구축: 루비, 파이썬, 노드 개발 환경 구축
direnv는 디렉터리 별로 셸 환경을 구축할 수 있게 해주는 도구입니다. 디렉터리 별 환경 변수 설정 법, 루비(Ruby), 파이썬(Python), 노드(Node) 등 프로그래밍 언어 프로젝트를 셋업하는 법을 소개합니
www.44bits.io
direnv를 사용하여 환경변수를 관리하면 해당 툴이 터미널에 들어갈때 파일로 만들어둔 설정값을 export하여 정해주고 경로에서 나갈때는 설정값을 다시 초기화 시켜둔다. 따라서 반복적으로 환경 변수를 특정 경로에서만 실행할 때는 유용한 툴인것 같다.
이렇게 환경 변수가 위치마다 다를 수 있는 이유는 터미널을 하나 띄우는것이 포크에 해당하기 때문이다. 원래 있던 운영체제의 세팅과 같은 설정값으로 포크를 하기 때문에 그냥 설정한 변수는 포크되는 다른 터미널에도 영향을 주지만 포크 이후에 direnv가 환경설정값을 넣어주기 때문에 환경설정변수가 꼬이지 않고 독립적으로 작동될 수 있는 것이다.
먼저 아래와 같은 내용으로 파일을 만들어 준다.
파일이름 : .envrc
export 환경변수1 = 값1
export 환경변수2 = 값2
해당 파일이 있는 위치에서 아래 명령어를 해주어야 파일이 입력이 되게 된다.
.envrc 파일이 수정될 때도 아래의 명령어를 실행해야 변경 사항이 반영이 되게 된다.
direnv allow
노드를 실행하면 해당 환경 변수가 들어오게 된다.
npm run start
'개발 > docker & linux' 카테고리의 다른 글
Mac OS , docker & oracle 사용하기 (1) (0) | 2021.08.24 |
---|---|
mac terminal 압축파일 관련 명령어 (0) | 2021.08.23 |
docker에 DB 설치하기 (3) - postgreSQL (0) | 2021.08.12 |
docker에 DB 설치하기 (2) - MS SQL (0) | 2021.08.09 |
docker에 DB 설치하기 (1) - oracle (0) | 2021.08.09 |