특정 버전의 라라벨 설치하기 free

2019-07-04

며칠 전에 벨 5.8.27이 나왔다. 새로 설치하는 사람이면 특별한 이유가 없는 한 최신 버전을 설치하는게 좋다. 메뉴얼에서 안내하는 대로 설치하면 자연히 최신 버전이 설치된다. 하지만 어떠한 이유에서건 과거의 버전을 설치할 필요가 생길 수 있다.


구글에서 laravel install specific version 으로 검색하면 특정 버전의 벨을 설치하는 방법을 어렵지 않게 찾을 수 있다.


스크린샷 2019-07-04 오전 11.25.28.png



문제는 저 글들이 공통적으로 알려주는 방법으로는 내가 원하는 정확한 버전을 설치할 수 없다는 점이다. 위 이미지에 나온 검색 결과 중 첫번째 글의 베스트 답변은 컴포저로 버전을 명시해서 설치하는 것이다.


스크린샷 2019-07-04 오전 11.32.36.png



그럼 이 방법으로 직전 버전인 5.8.26을 설치해보자.


composer create-project laravel/laravel="5.8.26" myProject
스크린샷 2019-07-04 오전 11.37.45.png


5.8.26 버전의 패키지를 찾을 수 없다! 그렇다면 두번째 베스트 답변은 어떨까?


스크린샷 2019-07-04 오전 11.41.15.png


--5.8.26는 옵션은 존재하지 않는다며 설치 실패! 두 방법 모두 내가 원하는 버전이 설치 안되는 수준이 아니 아예 설치 자체가 안된다.


laravel/laravel과 laravel/framework


까? 위의 컴포저 명령문을 다시 한 번 자세히 살펴보면 laravel/laravel 패키지를 설치를 시도한다는걸 알 수 있다. laravel/laravel의 깃헙 저장소에 가서 릴리즈 내역을 보면 최신 버전이 5.8.17이다. 5.8.27은 어디로 간거지?

스크린샷 2019-07-04 오전 11.52.04.png



5.8.17로 설치해보면? 설치된다.

스크린샷 2019-07-04 오전 11.55.57.png



버전을 확인해볼까?

스크린샷 2019-07-04 오전 11.56.51.png


5.8.27!??


이런 현상이 벌어지는 이유는 벨의 구조 때문에다. 벨은 laravel/laravel과 laravel/framework 패키지를 가지고 있다. laravel/framework가 벨 코어 프레임워크이고 laravel/laravel은 laravel/framework를 이용한 뼈대(skeleton) 애플리케이션이다. 즉 laravel/laravel은 종의 퀵스타트 예제인 셈이다. laravel/laravel과 laravel/framework의 관계는 appkr님의 글에도 잘 정리되어 있으니 참고하자.


laravel/laravel의 composer.json을 살펴보면 다음과 같이 laravel/framework에 의존하는 것을 확인할 수 있다.


"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.8.*",
"laravel/tinker": "^1.0"
},

“laravel/framework”: “5.8.*” 으로 의존하기 때문에 5.8의 최신 버전이 설치된다. 따서 특정 버전의 벨을 설치하는 방법은 간단하다. laravel/laravel을 clone 혹은 내려받기한 다음 composer.json에 laravel/framework의 정확한 버전을 지정한 뒤 composer install로 설치하는 것이다.


laravel/laravel clone 혹은 내려받기(설치 아님)


내려받기는 설명할게 없으니 git clone으로 진행해보자.


git clone git@github.com:laravel/laravel.git myProject

laravel/laravel에 기여하려고 클론한 것은 아니니 깃 정보를 제거하자.


cd myProject
rm -rf .git

composer.json을 열고 "laravel/framework": "5.8.*"을 "laravel/framework": "5.8.26" 으로 바꾼다.


"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.8.26",
"laravel/tinker": "^1.0"
},

컴포저로 의존 패키지들을 설치한다.


composer install

설치가 완료되면 버전을 확인해보자.


php artisan
스크린샷 2019-07-04 오후 12.19.59.png


5.8.26이 설치되었다.


===


컴포저에 익숙하신 분이면 별 내용 아닐 수 있는데, 의외로 검색결과에 제대로 된 답변들이 없어서 정리해봤습니다. 필요할 때 도움이 되면 좋겠네요~ :)


2019년 7월 4
1 1



이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.