Raspberry pi 3 B+ 에 Raspbian-jessie 가 설치되어 있습니다.

armv6l 용으로 이미 만들어 진 것이 있기 때문에 아주 쉽게 할 수 있습니다.

다운로드

$ wget https://storage.googleapis.com/golang/go1.6.3.linux-armv6l.tar.gz

/usr/local 에 압축을 풀어줍니다.

$ sudo tar -C /usr/local -xzf go1.6.3.linux-armv6l.tar.gz

다음에는 설정을 등록합니다.

PATH”:/usr/local/go/bin:$GOPATH/bin”

참조

sudo apt-get install golang 으로 설치 설정파일


GOARCH="arm"
GOBIN=""
GOCHAR="5"
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pi/golang"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_arm"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
pi@raspleaf:~ $ whereis go
go: /usr/bin/go /usr/lib/go /usr/share/go /usr/share/man/man1/go.1.gz

apt-get purge golang 을 하고 난 후에 직접 다운받고 난 뒤의 설정 파일

GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pi/golang"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_arm"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
pi@raspleaf:~ $ whereis go
go: /usr/local/go /usr/local/go/bin/go

혹시 설정이 달라질지 몰라서 한번 백업을해 놨습니다. 딱히 바뀌점이 없는 거 보니 제대로 설치가 된 것 같습니다.

그런데, 이상하게 db.sql 을 사용하는데, 1.3 보다 느립니다. 일부러 1.6 버전을 설치했는데, 느려지다니, 좀 실망입니다.

반응형

개발환경은 다른 곳에 라즈베리파이를 놓고, 다시 다른 곳에서 golang을 통해서 접속을 하려고 합니다.

모든 초반 작업은 root 계정에서 합니다.

 $ mysql -u root -p

DB를 생성

MariaDB [(none)]> CREATE DATABASE test;
MariaDB [(none)]> flush privileges;

mysql 외부 접속을 위한 아이디 생성

를 통해 관리자 아이디로 mysql(mariaDB)에 접속을 하고, 계정을 생성합니다.

내부 접속용 아이디

MariaDB [(none)]> create user ‘이름’@‘localhost’ identified by ‘비밀번호’;
MariaDB [(none)]> flush privileges;

localhost 가 들어가 있으면 내부접속만 허용하는 옵션입니다.

외부 접속용 아이디

MariaDB [(none)]> create user '이름'@'%' identified by '비밀번호'
MariaDB [(none)]> flush privileges;

% 이 들어가면 모든 아이피의 접속을 허용한다는 뜻입니다.
특정 IP에 권한을 주려면 ‘123.123.123.123’ 과 같은 권한을 추가하면 됩니다.

DB 계정에 권한설정

grant all privileges on 디비명.* to 이름@'%' identified by ‘비밀번호';
MariaDB [(none)]> flush privileges;

mysql 설정하기

$sudo vi /etc/mysql/my.cnf

bind-address = 127.0.0.1설정의 맨 앞에 #을 넣어서 주석처리 합니다.

raspberry 에 mysql 포트 열기

mysql 기본포트는 3306를 사용하고 있습니다.
3306 포트를 열어줍니다.

$ iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
$ iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
$ iptables-save

golang 소스

go get github.com/go-sql-driver/mysq;

를 통해서 소스 mysql 접속 소스를 다운받습니다. ($GOPATH) 폴더에 자동으로 설치가 됩니다.

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "아이디:비밀번호@tcp(접속주소:포트)/디비명")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    var version string
    db.QueryRow("SELECT VERSION()").Scan(&version)
    fmt.Println("Connected to:", version)
}

sql.Open(“mysql”, “아이디:비밀번호@tcp(접속주소:포트)/디비명”)
포트번호까지 전부 적어줘야 합니다.

반응형

'개발 > Golang' 카테고리의 다른 글

GO | golang 1.9 update  (0) 2017.09.06
Golang | 최신버전으로 업그레이드 할 때 주의점  (0) 2016.08.23
golang | strings 패키지  (0) 2016.08.12
Golang 에 유용한 IDE 에디터  (0) 2016.07.20
[golang] packtpub 무료책 받기  (0) 2016.07.01

PHP7 설치하기

소스 추가하기

$ sudo nano /etc/apt/source.list

아래와 같은 항목을 추가합니다.

deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free
#deb-src http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

추가하고 난 뒤에 키를 등록합니다.

$ sudo gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
$ sudo gpg --armor --export CCD91D6111A06851 | sudo apt-key add -

기존에 설치되어 있는 php5 삭제하기

$ sudo apt-get remove php5-common

php7 fpm 설치하기

$sudo apt-get install php7.0-fpm

fpm 을 설치하면 php7.0 기본파일들도 자동으로 설치가 됩니다.

php7-mysql

$ sudo apt-get install php7.0-mysql

Nginx 사이트의 소켓을 업데이트 해야 합니다.

PHP 5 PHP 7
/var/run/php5-fpm.sock /var/run/php/php7.0-fpm.sock

$ sudo vi /etc/nginx/sites-available/default

을 열어서 아래와 같이 unix 소켓 부분을 수정합니다.

설정이 끝났으면, nginx 서버를 재시작합니다.

$ sudo service nginx restart

설치 확인

설정이 잘 되었는지 한번 확인해 봅시다.

$ php -v
PHP 7.0.7-3~bpo8+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
$ sudo nano /usr/share/nginx/html/info.php

를 입력해서

<?php
phpinfo()
?> 

내용을 추가한 후에 ctrl+o 저장을 한후 ctrl+x를 눌러 나옵니다.
이제 서버에 들어가봅시다

이제 서버에 들어가봅시다

https://서버주소/info.php

아래같이 화면이 나오면 제대로 설정이 된 것입니다.

반응형

owner, group 변경하기

매번 어려웠던 문제를 정리를 해서 기억해 두려고 합니다.
SFTP 에 접속을 해서 홈페이지 파일을 업로드 하려고 하는데, 권한이 없어서, filezilla 를 통해서 업로드 할 수 없었습니다.
시스템에 대한 지식이 부족하고, 필요할 때에만 구글신을 빌어서 이용했기 때문에 정리를 하지않으면 자신의 것이 되지 않는다고 생각해서 이렇게 정리합니다.

소유자, 그룹 확인

$ ls -l

명령을 통해서 간단히 소유자 그룹을 알 수 있습니다. 아래를 보면, -rw-r--r--과 같은 권한에 대한 정보 다음에 올라오는 것이 소유자, 그룹 에 대한 정보입니다.

권한 소유자 그룹 용량 작성시간
-rw-r–r– root root 343783 Sep 11 2012
pi@raspleaf:/usr/share/nginx/html $ ls -l
total 364
-rw-r--r-- 1 root     root 343783 Sep 11  2012 ddd.zip
-rw-r--r-- 1 www-data root   2971 Jul 26 15:51 index.php
-rw-r--r-- 1 www-data root     20 Jul 21 23:21 phpinfo.php
drwxr-xr-x 2 root     root   4096 Jul 26 12:36 sold
drwxr-xr-x 2 root     root   4096 Jul 25 23:40 stack+hight
-rw-r--r-- 1 root     root   4550 Jul 25 09:31 test.html
drwxr-xr-x 5 www-data pi     4096 Jul 23 01:57 wordpress

소유자 변경

$ sudo chown [변경할소유자명] [파일 or 디렉토리]

다음 sold 폴더의 소유자를 pi 로 변경 해 보겠습니다.

$ sudo chown pi sold

sudo 로 관리자(root) 권한으로 명령어를 실행해야 합니다.

drwxr-xr-x 2 pi       root   4096 Jul 26 12:36 sold

다른 과 같이 root 에서 pi 로 소유자가 변경된 것을 확인할 수 있다.

소유자, 관리자 변경

:(콜론)을 이용해서 “소유자:그룹” 을 지정하면 변경 할 수 있습니다.

$ sudo chown pi:pi sold

drwxr-xr-x 2 pi       pi     4096 Jul 26 12:36 sold

하위디렉토리 포함해서 변경하기

특정 디렉토리와 서브 디렉토리의 소유주 소유그룹을 한꺼번에 변경 방법

$ sudo chown -R [소유자:그룹] [폴더명]

이렇게 하면 지정한 폴더 뿐 아니라 하위 폴더까지 권한이 변경되어 있는 것을 알 수 있습니다.

반응형

'개발 > 리눅스' 카테고리의 다른 글

centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09
우분투에서 일본어 사용하기  (0) 2016.07.18
MongoDB 간단히 CRUD 사용하기  (0) 2016.07.12

라즈베리파이 minmidlna 1.1.5 설치하기

사전작업

이미 설치해 놓은 minidlna 를 삭제 합니다.

$ sudo apt-get purge minidlna -y && sudo apt-get remove minidlna && sudo apt-get autoremove -y

패키지형태로 제공이 되기 때문에 설치하기 위해서 라이브러리를 설치해줘야 합니다. 안 하면 ./configure작업에서 에러가 납니다.

$ sudo apt-get install autopoint debhelper dh-autoreconf gcc libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libflac-dev -y

설치하기

소스파일 다운로드

$ wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.1.5/minidlna-1.1.5.tar.gz

압축풀기

$ tar -xvf minidlna-1.1.5.tar.gz

minidlna 디렉토리로 들어갑니다.

$ cd minidlna-1.1.5

configure, make, 그리고 minidlna 설치

$ ./configure && sudo make && sudo make install

기본 설정 파일 복사하기

$ sudo cp minidlna.conf /etc/

부팅시 자동으로 실행하게 스크립트를 등록해 줍니다.

$ sudo cp linux/minidilan.init.d.script /etc/init.d/minidlna

스크립트에 권한 설정

$ sudo chmod +x /etc/init.d/minidlna

minidlna 를 기본으로 사용할 수 있게 설정 해 줍니다.

$ sudo update-rc.d minidlna defaults

minidlna.conf 설정하기

$ sudo nano /etc/minidlna.conf

아래와 같은 부분만 설정해 주면 됩니다. #표시를 제거해서 주석처리를 제거해 주세요.

media_dir=/home/pi/torrent
friendly_name=Raspberry DLNA
inotify=yes

media_dir : 미디어 파일이 있는 곳 위치입니다.
inotify : 자동 갱신여부 설정

root_container=V:
- DLNA 에 접속하면 들어갈 목록입니다. V라고 설정해 주면 바로 비디오 목록으로 들어가집니다. 번거롭게 음악, 사진, 비디오 메뉴가 안 나옵니다.

B” - “디렉토리 브라우저”
M” - 음악”
V” - “비디오”
P” - “사진”

서비스를 시작 합니다.

$ sudo service minidlna start

실행이 되는 것을 확인 했으면, 이제 재부팅을 해 줍니다.

$ sudo reboot

부팅이 끝난 후에 DLNA에 접속 할 수있으면 성공적으로 설치가 된 것입니다.


반응형

라즈베리파이 삼바서버 설치

패키지를 이용해서 설치하기

$ sudo apt-get install samba

사용자 추가하기

pi 사용자를 추가합니다.

$ sudo smbpasswd -a pi

사용자 정보 설정 추가하기

$ sudo vi /etc/samba/smb.conf

제일 아랫칸으로 이동을 한 뒤에 i키를 이용해서 insert모드로 들어간 후에 아래와 같이 입력을 합니다.
입력을 다 끝냈으면, ESC키를 누르고 :wq 를 입력해서 저장하고 나오기를 합니다.

[pi]
path = /home/pi
comment = SAMBA SERVER
valid user = pi
writable = yes
browseable = yes
create mask = 0777
public = yes

$ sudo service samba restart

Failed to restart samba.service: Unit samba.service is masked.

에러가 출력된다면

$ sudo service smbd restart

그래도 Failed to restart smdb.service: Unit smdb.service failed to load: No such file or directory.

와 같은 에러가 난다면 직접 restart 시킬 수 밖에 없습니다.

$ sudo /etc/init.d/samba restart

서비스를 restart 해 줘야 사용자 추가 한게 적용이 된다.


반응형

설치하기

콘솔에서 다음과 같이 입력합니다.

$ sudo apt-get install transmission transmission-daemon

설정하기

다른 인터넷 검색을 통해서 설치를 하려고 하는데, 이상하게 설정을 해도 400 forbidden 에러를 열심히 뿝더라구요. whitellist 를 설정해도 안됩니다.

$ sudo vi ~/.config/transmission-daemon/

다른 블로그들을 찾아봤습니다.
/etc/transmission-daemon/settings.json 를 수정해서 설정을 바꿨는데, 저는 이게 안되더라구요. 그래서 계정 문제라고 생각을 해서 개인 설정을 찾아 다녔습니다.
실상 저장되는 위치는 여깁니다. 이것을 수정하고 난 뒤에 제대로 9091 port 를 통해서 GUI에 접속할 수 있었습니다.

완성 된 파일이 저장되는 위치

"download-dir": "/home/pi/torrent",

완성되기 전에 저장되는 위치

"incomplete-dir": "/home/pi/torrent",

GUI 부분

"rpc-enabled": true,
"rpc-password": “비밀번호”,
"rpc-port": 9091,
"rpc-username": "root",
"rpc-whitelist": "*.*.*.*",
"rpc-whitelist-enabled": false,


반응형

Golang 에 유용한 IDE 에디터

Go언어를 공부하다보면, 이것저것 편집기를 만져보는게 하나의 통합된 편집기에서 사용하고 싶고, 이것저것 여러 에디터를 설치하기가 싫다.

  • Atom : node.js 로 만들어진 에디터. 범용성이 뛰어납니다. 이본적으로 browser를 기반으로 만들어져 그런지 사양을 좀 탑니다. 처음에 설정을 하기가 좀 힘이 듭니다. 실행중에 잦은 오류가 생깁니다. 이뻐서 사용해보려고 했는데, 뭔가 생산을 하기에는 부적합한 도구가 아닐까 생각이 듭니다.
    저는 이상하게 자동완성 기능이 되다 안되다….. 제가 잘 못쓰는 거겠지만.

  • IntelliJ IDEA : plugin 을 통해서 사용할 수 있습니다. 강좌를 보면 외국분들은 많이 사용하더라구요. 이클립스 같은 통합형툴.

  • LiteIDE : 개인적으로 필요한 기능등만 들어있는 툴입니다. golang에 특화 되어 있어서 사용하기가 편합니다.
    기본에 충실한 에디터 입니다.

  • sublime : Atom과 같이 초반에 설정을 해 줘야 하는게 상당히 번거롭습니다. 가볍고, 빠릅니다.

기타 vim, emacs 등이 있지만, 저는 사용할 줄 아직 모르고, 이 편집기를 사용하신다면 이미 에디터 끝판왕.
메모장을 드려도 잘 사용하실 듯

언젠가, emacs 로 넘어가는 그날을 위해서

반응형

우분투에서 일본어 사용하기

fcitx 모듈을 추가로 설치해 주시면 됩니다.

$ sudo apt-get install fcitx-mozc

이렇게 명력어도 추가하고 난 뒤에, 상단바에서 다시시작을 누릅니다.
다시 상단바로 가면, [입력방법]Mozc가 추가 된 것을 볼 수 있습니다.

일본어 입력기

  • fcitx-anthy, 가장 유명한 일본어 입력기, 더이상 업데이트가 없습니다.
  • fcitx-mozc, Mozc를 기반으로 한 입력기.
  • fcitx-kkc, libkkc를 기반으로 최근에 새로운 입력기.
반응형

'개발 > 리눅스' 카테고리의 다른 글

centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09
소유자, 그룹 변경하기  (0) 2016.07.28
MongoDB 간단히 CRUD 사용하기  (0) 2016.07.12

라즈베리파이에서 삼바서버에 접속하기

이 방법은 하드가 연결 된 ac66라즈베리파이를 연결해서 ac66 안에 있는 하드에 접근하기 위해서 찾아 본 방법입니다.

윈도우에서는smb://192.168.0.1/abc와 같이 연결을 할 수 있었습니다만. 라즈베리파이에서는 조금 다릅니다.

mount 할 시에 타입을 CIFS로 달아주면 됩니다.

CIFS(Common Internet File System) 는 네트워크를 위한 SMB 파일 공유 프로토콜의 확장된 버전이며, 윈도우와 유닉스 환경을 동시에 지원하는 인터넷의 표준 파일 규약의 프로토콜이다. CIFS는 이전의 폐쇄적인 SMB 프로토콜과는 달리 CIFS 규약 정의는 여러 유닉스 업체의 참여하여 결정된 내용이기 때문에 삼바도 버전이 올라감에 따라(삼바 버전 2.2 이상) CIFS 규약을 잘 준수하여 안정성이 상당히 향상 되었다.

권한이 없다는 문제가 나올 수도 있습니다. 그 때에는 sudo 를 앞에 입력 해 주세요.

연결할 디렉토리 만들기

/mnt/ 에 드라이브를 연결하려면 일단 디렉토리를 하나 만들어 줘야 한다. 원하는 디렉토리를 하나 만들어 줍니다.

$ mkdir /mnt/abc

SMB 연결하기

$ mount -t cifs //server/share /mnt/abc -o username=아이디,password=비밀번호

SMB연결 끊기

$ umount /mnt/abc

정리

$ sudo mkdir /mnt/abc
$ sudo mount -t cifs //server/share /mnt/abc
반응형

+ Recent posts