FreeNAS에 추가 패키지 설치하기

|
FreeNAS는 FreeBSD를 기반으로 하고 있다.
FreeNAS자체로도 여러종류 (삼바, ftp, http, ssh 등...)의 서버를 기본적으로 지원하고 있지만,
앉으면 눕고싶은게 사람 마음이니....

여기에 추가적으로 다른 서버나 ssh를 접속해보고 실행되는 명령이 너무 적어서
실망했을 사람들을 위해 끄적거리는 포스팅. FreeNAS에 패키지 설치하기.


일단 FreeNAS는 embedded가 아닌 Full에서 좀 더 수월하다.
embedded인 경우에는 별도 마운트된 하드에 설치하고 소프트링크를 걸어주는 등의 방법이 사용되는 듯으로 보인다.


기본적으로 제공되는 웹 형태의 FreeNAS관리 페이지에서
사용자를 추가하고, SSH서비스를 활성화시키면 SSH로 접속이 가능하다.

FreeBSD는 UNIX계열로, 익숙한 Linux에서와 마찬가지로, 슈퍼유저인 root가 존재한다.
ssh로 접속한 다음, su 명령을 해보면?

아마 되는사람도 있고, 안되는 사람도 있을거다.

안되는 경우는
su: Sorry
라고 뜨고 끝.

응?

밑도끝도없이 Sorry라니....



이건 왜 이러냐... 하면,
FreeBSD는 보안때문에 특정 그룹이 아니면 su 명령 자체를 사용할 수 없게 되어 있다.
그 특정 그룹이 무엇이냐, 바로 wheel 그룹이다.

다시 웹 인터페이스에서 ssh로그인시 사용하는 계정을 wheel그룹으로 추가하고 apply하자.

그러면 su명령이 실행되고, root로 로그인이 가능해진다.


자, 그럼 이제 패키지를 설치해볼 차례.

패키지 설치는 pkg_add 명령으로 가능하다.
[code shell]
pkg_add -r [패키지명]
[/code]

근데 또 에러가 뜬다...

pkg_add: unable to fetch ~

이런 에러가 뜬다면, 패키지를 받아오는 서버가 틀린 경우다.

FreeNAS-어쩌구저쩌구-i386.iso로 설치했다면
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/ 이곳에서,
어쩌구~amd64로 설치했다면
ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/ 이곳에서 각 버전에 맞게 들어간 다음,

Latest/ 를 서버로 설정해주면 된다.

내 경우엔, i386에 7.3이었으므로, 다음과 같이 설정했다.
[code shell]
setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/
[/code]

Latest 아래로 들어가보면 tbz확장자를 가진 파일이 꽤 많이 보이는데,
pkg_add -r [패키지명]을 실행하면 패키지명.tbz를 받아 설치하게 되는것이다.

나는 일단 vi를 쓰기 위해 vim.tbz를 설치하고자
[code shell]
pkg_add -r vim.tbz
[/code]
이렇게 실행했더니....


PKG_TMPDIR이 어쩌구저쩌구.....
이런 에러메세지가...?

이 에러는 설치중 사용하는 임시 저장공간이 부족해서이다.
나는 125MB짜리 CF카드를 CF-IDE변환기를 이용해서 IDE0번에 연결해서 쓰는데,
df해보면 20MB정도가 남아있지만 설치시 실제 필요한 공간은 이것보다 많기때문에 에러가 나는것이었다.

그래서 임시로 마운트된 하드에 임시저장공간을 설정했다.
(공간이 충분한 파일시스템에 적당히 디렉토리 하나 만들어서 설정해주면 된다.)
[code shell]
setenv PKG_TMPDIR /mnt/어쩌구저쩌구
[/code]



..하지만 실제 메인 파일시스템 공간이 부족해서 설치에는 실패했다. 용량이 더 큰 CF카드로 갈아끼워야 할 듯 싶다.
하드를 교체하고 다시 설치해서 vim패키지 설치에 성공했다.


위에서 setenv로 설정한 환경값은 재부팅을 하게되면 그 설정값이 보존되지 않는다.
이 값을 매 로그인시마다 설정하게 하면 되며,
bash에서의 .bashrc에 해당하는 파일이 .cshrc파일이다.
root계정에 대해 설정하면 되므로 /root/.cshrc파일에 setenv명령을 추가해 주면 된다.

하지만 vi등의 편집기가 설치되지 않았는데 어떻게 추가를 하느냐...
일단은 추가만 하면 되므로 리다이렉트를 이용하면 된다.

[code shell]
echo 'setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/' >> .cshrc

[/code]
이렇게 하면 setenv하는 부분이 .cshrc파일의 맨 끝에 붙게 된다.

PKG_TMPDIR도 설정이 필요하다면 마찬가지로 해주면 된다.



추가.
FreeBSD국내 미러가 있네요.
주소는 ftp://ftp.kr.freebsd.org 입니다.
PACKAGESITE 추가하는 주소는
ftp://ftp.kr.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/
입니다.
And