일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- chainlink 설명
- 러스트 기초
- 오블완
- ethers type
- Vue.js
- 스마트 컨트렉트 함수이름 중복
- 컨트렉트 배포 자동화
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트 예약어 함수이름 중복
- rust 기초
- 컨트렉트 동일한 함수이름 호출
- 티스토리챌린지
- 러스트 기초 학습
- 스마트컨트렉트테스트
- ambiguous function description
- 프록시배포구조
- ethers websocket
- vue기초
- git rebase
- ethers
- multicall
- 러스트기초
- ethers v6
- Vue
- SBT표준
- 스마트컨트렉트프록시
- 머신러닝기초
- ethers typescript
- nest.js설명
- 체인의정석
- Today
- Total
체인의정석
운영체제, 터미널의 구조와 그에 따른 환경 변수의 설정 (direnv 사용) 본문
먼저 OS를 기준으로 보았을 때
맥 OS자체는 리눅스에서 포크된 하나의 복사된 운영체제로 볼 수 있다.
따라서 기본적으로 리눅스의 기본 설정값을 따르고 있으며 이후, 환경 변수를 설정해주면 맥 OS 단계에서 환경변수가 설정되게 된다.
같은 원리로 만약 터미널을 키고 바로 환경 변수를 설정해주면 그 이후의 다른 값들은 해당 환경 변수를 따르게 되고, 환경변수가 많아질 경우 예기치 못한 에러가 나고 뒤죽박죽이 될 수 있다.
여기에 따라 나오는 것이 바로 direnv라고 할 수 있다.
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 |