리눅스

Linux Powerline 설치 (파워라인 설치 및 설정)

파워라인(Powerline)은 터미널 환경을 멋지게 꾸밀 수 있는 스크립트입니다. 서식이 입혀지지 않은 터미널 텍스트와 명령어간에 구분이 어렵거나 텍스트 에디터 편집 시 상태 표시줄의 분간이 어려울 경우 파워라인을 사용하면 깔끔한 모습으로 변하게 됩니다.

리눅스에서 Powerline을 사용하고 싶을 때 아래 방법으로 설치 및 설정할 수 있습니다.

Linux Powerline 설치 및 설정 방법

먼저 Powerline 스크립트 실행을 위해서는 python-pip git 패키지가 필요합니다. 아래 명령어로 설치할 수 있습니다.
(CentOS와 같은 RedHat 계열은 yum, Ubuntu와 같은 Debian 계열은 apt 패키지 관리자를 사용합니다. python-pip 패키지가 존재하지 않는다고 나타나면 python3-pip로 진행해보세요.)

$ sudo apt install python-pip git (또는 $ sudo yum install python-pip git)
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.wdc1.us.leaseweb.net
 * epel: mirror.cogentco.com
 * extras: ftpmirror.your.org
 * remi-php70: repo1.ash.innoscale.net
 * remi-safe: repo1.ash.innoscale.net
 * updates: repos.mia.quadranet.com
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-13.el7 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-13.el7 for package: git-1.8.3.1-13.el7.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-13.el7.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-13.el7.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-13.el7.x86_64
--> Processing Dependency: libgnome-keyring.so.0()(64bit) for package: git-1.8.3.1-13.el7.x86_64
---> Package python2-pip.noarch 0:8.1.2-6.el7 will be installed
--> Running transaction check
---> Package libgnome-keyring.x86_64 0:3.12.0-1.el7 will be installed
---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-13.el7 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package                    Arch             Version                    Repository      Size
=============================================================================================
Installing:
 git                        x86_64           1.8.3.1-13.el7             base           4.4 M
 python2-pip                noarch           8.1.2-6.el7                epel           1.7 M
Installing for dependencies:
 libgnome-keyring           x86_64           3.12.0-1.el7               base           109 k
 perl-Error                 noarch           1:0.17020-2.el7            base            32 k
 perl-Git                   noarch           1.8.3.1-13.el7             base            54 k
 perl-TermReadKey           x86_64           2.30-20.el7                base            31 k

Transaction Summary
=============================================================================================
Install  2 Packages (+4 Dependent packages)

Total download size: 6.3 M
Installed size: 30 M
Is this ok [y/d/N]: y

다음으로 pip (Python의 패키지 관리자)을 사용하여 파워라인의 최신 버전을 가져와 설치를 진행합니다. 아래 명령어를 입력해주세요.

$ sudo pip install git+git://github.com/Lokaltog/powerline
Collecting git+git://github.com/Lokaltog/powerline
Cloning git://github.com/Lokaltog/powerline to /tmp/pip-2m2YnH-build
Installing collected packages: powerline-status
Running setup.py install for powerline-status ... done
Successfully installed powerline-status-2.6.dev9999-git.a5dd717ac44223160ff84b13a1513e5a88615292

만약 인스톨 도중 ‘You are using pip version 8.1.2, however version 10.0.1 is available. You should consider upgrading via the ‘pip install –upgrade pip’ command.’ 메세지가 출력되었다면, 메세지에 나와있는대로 pip의 버전을 업그레이드해주시면 됩니다.

$ sudo pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 769kB/s 
Installing collected packages: pip
Found existing installation: pip 8.1.2
Uninstalling pip-8.1.2:
Successfully uninstalled pip-8.1.2
Successfully installed pip-10.0.1

설치가 완료된 것을 확인하려면 아래 명령어를 입력해보세요.

$ which powerline
/bin/powerline

다음으로 wget을 사용하여 Powerline의 폰트 파일과 폰트 설정 파일을 다운로드해야 합니다. 아래 명령어로 폰트를 다운로드한 후, 폰트 및 폰트 설정 파일을 각 디렉토리로 이동해주어야 합니다.

$ wget https://github.com/Lokaltog/powerline/raw/develop/font/PowerlineSymbols.otf
$ wget https://github.com/Lokaltog/powerline/raw/develop/font/10-powerline-symbols.conf
$ sudo mv PowerlineSymbols.otf /usr/share/fonts/
$ sudo fc-cache -vf
$ sudo mv 10-powerline-symbols.conf /etc/fonts/conf.d/

터미널 인터페이스에 적용하기


이제 적용할 차례만 남았습니다. 터미널 상에서 적용하기 위해 .bash_profile 파일을 편집합니다. (각 유저에 대한 .bash_profile 파일을 편집)

편집 시 Python의 버전과 경로가 존재하는지 확인해주시고 작성해주셔야 합니다. 버전이나 패키지 설치 위치가 다를 경우 해당 스크립트에 오류가 발생할 수 있습니다.

Debian 계열(Ubuntu…)일 경우 아래와 같이 설정합니다:

if [ -f /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh ]; then
    source /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh
fi

RedHat 계열(CentOS…)일 경우 아래와 같이 설정합니다. 위와 같지만 /usr/lib/python2.7/site-packages와 같이 경로가 살짝 다르게 표시될 수 있습니다:

if [ -f /usr/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh ]; then
    source /usr/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
fi

이후 터미널 로그인을 다시 시도하면 성공적으로 적용된 것을 확인하실 수 있습니다.

Vi 또는 Vim에 적용하기


vi나 vim을 사용중일 때는 .vimrc 파일에 아래 내용을 추가하여 상태 표시줄에 Powerline을 적용할 수 있습니다.

$ vim ~/.vimrc

파일을 열어 아래 내용을 붙여넣어주세요.

Debian 계열(Ubuntu…)일 경우 아래와 같이 설정합니다:

set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256

RedHat 계열(CentOS…)일 경우 아래와 같이 설정합니다. 위와 같지만 /usr/lib/python2.7/site-packages와 같이 경로가 살짝 다르게 표시될 수 있습니다:

set rtp+=/usr/lib/python2.7/site-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256

참고 링크

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

[iOS] Xcode ‘You do not have required contracts to perform an operation’ 해결

Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…

2주 ago

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

6개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

8개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

8개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

8개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

8개월 ago