'형상관리'에 해당되는 글 123건

  1. 2019.07.08 Ubuntu 14.04에서 마우스 속도 설정
  2. 2019.06.19 AiCloud에서 Ubuntu 시스템의 WOL 사용 방법
  3. 2018.01.23 PAM 개발환경 구성
  4. 2018.01.06 Ubuntu 16.04에서 HUD 설정 끄기
  5. 2018.01.04 systemd Unit 파일 작성
  6. 2017.12.22 PowerShell에서 SHA256 값 얻기
  7. 2017.06.29 Ubuntu 12.04 듀얼 모니터에서 Default 모니터 설정
  8. 2017.02.03 Ubuntu 12.04에 LibreOffice 업그레이드 설치하기
  9. 2017.02.01 OS X 터미널에 "l", "ll" 명령어 alias 걸기
  10. 2017.01.19 Ubuntu 16.04.1 LTS HDMI 사운드 출력 설정
  11. 2017.01.11 Ubuntu 12.04 64bits에서 gdb 사용 시 Cannot find new threads: generic error
  12. 2017.01.09 Git 사용중 Not a git repository 에러
  13. 2017.01.05 Ubuntu 12.04 64bits에서 로지텍 K811을 블루투스 동글에 연결하여 사용 2
  14. 2017.01.04 SVN 커밋 로그 검사
  15. 2017.01.02 Android 서비스에서 동적 BroadcastReceiver 사용하기
  16. 2016.05.27 Ubuntu에서 Nexus 5 Factory 이미지 올리기 및 루팅(Rooting)
  17. 2016.03.10 안드로이드에서 실행가능한 명령어 컴파일 후 실행 시 PIE 에러 대응
  18. 2016.03.10 루팅된 android에서 /system rw 리마운트
  19. 2015.11.03 VMware의 Guest로 CentOS 6 부팅 시 kernel panic 발생 해결
  20. 2015.10.30 Ubuntu 12.04 64bits 하드디스크 상태 체크
  21. 2015.10.23 Android Studio 1.5에서 Gradle 에러 발생
  22. 2015.07.01 Ubuntu 12.04 x64 Kensington Slimblade Trackball 버튼 재설정
  23. 2014.12.09 vi 내부명령어
  24. 2014.10.30 Ubuntu 12.04 64bits에 PostgreSQL 9.3을 apt-get으로 설치하는 방법
  25. 2014.10.13 YARA 3.1.0 Ubuntu 12.04 x86_64 설치
  26. 2014.04.15 Oracle Linux 6.3 설치 후 eth0 설정
  27. 2014.03.13 Ubuntu 12.04에서 ADT의 AVD 생성 시 No system images installed for this target 표시 해결방법
  28. 2014.03.13 Ubuntu 12.04 lightdm 손님 세션 제거
  29. 2014.03.12 Ubuntu 12.04에서 이클립스 사용 시 Content Assist의 단축키 Ctrl+Space 동작하지 않을 때
  30. 2014.03.10 Ubuntu 12.04 64bits에서 저장소(repository) 변경

우분투 14.04를 설치 후 로지텍 무선 마우스를 연결하자 포인트 속도가 너무 느렸다.

 

"시스템 설정->마우스 및 터치 패드"를 실행 하면 아래 설정 밖에 보이지 않는다.

 

잠깐 검색한 결과 마우스 포인트의 속도와 민감도 조절이 없는 것은 버그라고 한다.

 

해결방법은 명령어로 설정하면 된다.

 

xset, xinput 명령어로 설정하는 방법이 있는데,  xset 명령어를 사용하기로 하였다.

 

터미널에서 다음과 같이 실행해주면 만족할 만한 설정이 되었다.

 

$ xset m 20/12 0

 

"m"은 마우스 설정이라는 것이고,

 

"20/12"는 가속도 설정,

 

"0"은 민감도(몇 픽셀을 움직였을 때 포인트 이동) 설정이다.

 

재부팅하면 설정이 리셋되기 때문에 "시작프로그램(Startup Applications)"에 등록해주면 된다.

Posted by dcmru
,

ASUS 공유기를 사용 중에 WOL 기능을 스마트폰에서 사용하기 위해서는 AiCloud 앱을 사용해야 한다.

AiCloud 앱을 설치하고 이리저리 살펴보던 중

Plugins탭의 Manual WOL에 컴퓨터의 MAC 주소를 입력하여 등록했지만 WOL이 동작하지 않았다.

그러던 중 Windows 시스템은 AiCloud앱의 첫 화면에 자동으로 등록이 되었고,

그 시스템이 꺼져 있을 때 그 시스템 아이콘을 누르면 WOL을 동작시킬 수 있었다.

하지만 Ubuntu는 자동으로 등록이 되지 않는다.

검색을 해보니 ASUS공유기는 NetBIOS Name Service로 시스템을 자동으로 등록하는 것으로 결론.

Ubuntu 16.04를 사용하기 때문에 Samba를 설치하면 NetBIOS를 사용할 수 있다.

$ sudo apt-get install samba samba-common-bin

설치 후 AiCloud 앱에서 Ubuntu 시스템이 자동으로 등록되었고,

WOL도 정상적으로 사용 가능하였다.

Posted by dcmru
,

PAM(Pluggable Authentication Modules)을 개발할 때 관련 개발환경이 구성이 되어 있어야 빌드에러가 발생하지 않는다.


PAM 소스를 빌드할 때 에러가 발생하면 거의 헤더파일이 없는 상태이다.


헤더파일의 위치는 /usr/include/security/* 에 있는 파일들이다.


개발환경을 구성하는 방법은 아래와 같이 패키지를 설치하면 된다.


On the Centos and RHEL -build VMs, install the pam-devel package:

    sudo yum install pam-devel

On all the Debian/Ubuntu -build virtual machines, install libpam0g-dev:

    sudo apt-get install libpam0g-dev


참조: https://mariadb.com/kb/en/library/installing-correct-libraries-for-pam-and-readline/

Posted by dcmru
,

우분투 16.04에서 한영전화을 위해 Alt R 키를 사용하려는데


"명령을 입력하세요"라는 메시지와 함께 화면의 왼쪽 상단에 키 입력대기하는 창이 나타난다.


번거로운 와중에 Alt R 키를 한영전화키로 설정하려고 한다.


"시스템 설정->키보드->바로 가기->런처->허드를 표시할 키"를 누른 다음 백스페이스키를 눌러  Alt R 키 설정을 지운다.


키를 "사용안함"으로 표시가 바뀐다.



바탕화면 오른쪽 상단에서 키보드 모양의 입력기 아이콘을 마우스 오른쪽 버튼으로 누른 후 "설정" 을 누른다.


입력기 설정이 나타나는데 "입력 방식"에서 사용할 입력소스 순서를 아래와 같이 변경한다


Hangul

키보드 - 한국어

키보드 - 영어(미국)


"입력 방식" 옆에 "전역 설정"을 누른 후 "단축키->입력기 전환"에서 입력기 전환할 키를 설정한다.


로지텍 K810을 사용하는데 Hangul 키가 없기 때문에 "Ctrl + Space" 와 "Ralt" 키를 설정하였다.

Posted by dcmru
,

레드햇 RHEL 7 부터 부팅될 때 서비스 시작/종료 루틴이 변경되었다.

 

아래 링크에서 systemd Unit 파일 작성하는 방법을 참고하면 되겠다.

9.6. Creating and Modifying systemd Unit Files

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files

 

기존 루틴에 비해 장점이 있으니 변경되었겠지만 적용하려니 귀찮기는 하다;;;

아직 과도기이기 때문에 기존 방식을 사용못하는 것은 아니지만

기존방식으로 했을 때 서비스가 바로 시작이 안되거나 하는 문제들이 발생하였다.

재부팅하면 서비스가 시작이 되지만 실제 서버에서 재부팅은 큰문제이기 때문에 바뀐 루틴으로 옮겨갈 수 밖에 없겠다.

Posted by dcmru
,

윈도우에서 해시값을 얻기 위해 PowerShell을 사용할 수 있다.

 

PowerShell 5버전 이상에서는 Get-FileHash라는 유틸을 사용할 수 있지만

 

PS C:\> Get-FileHash $pshome\powershell.exe | Format-List
Algorithm : SHA256
Hash      : 6A785ADC0263238DAB3EB37F4C185C8FBA7FEB5D425D034CA9864F1BE1C1B473
Path      : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

 

윈도우 7을 사용하고 있는 PC에서는 PowerShell 버전이 낮아 사용할 수 없다.

아래와 같이 CertUtil 명령어를 사용할 수 있다.

 

PS C:\Users\Administrator\Desktop> certutil -hashfile .\rhel-5-client-x86_64-disc7.iso SHA256
SHA256 해시(.\rhel-5-client-x86_64-disc7.iso 파일):
f0 62 da 01 42 b8 a5 62 be 34 84 24 0b a0 7a d0 08 79 46 8e 8e c3 d9 bb 4d f8 61 5a 5c 23 9d cc
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.

Posted by dcmru
,

우분투 12.04에서 듀얼 모니터를 사용하는 중에 Default로 사용하던 모니터가 어느 순간 뒤바뀌어 버렸다.


아마도 윈도우즈와 같이 쓰다보니 Win + p 단축키를 누른 것이 원인이 아닌가 싶다.


패널의 위치가 바뀌어 버리니 여간 성가신게 아니다.


디폴트 모니터 설정을 하는 방법을 찾던 중



NVS 310 그래픽 카드를 사용 중이어서


프로그램->시스템도구->기본 설정->"NVIDIA X Server Settings"에서


"X Server Display Configuration"의 "Make this the primary display for the X screen" 을 체크하면,


디폴트 모니터의 설정이 가능하였다.




하지만 재부팅을 하면 또 디폴트 모니터 설정이 바뀌어 버려 계속 설정해주기가 귀찮아 다른 방법을 찾아 보았다.


먼저 터미널에서 아래 명령어를 실행하여 arandr을 설치한다.


$ sudo apt-get install arandr --upgrade


각 설치 후 arandr을 실행하여 각 모니터의 DP-# 번호를 파악한다.


다음으로 아래 명령어를 실행하여 시작 프로그램을 등록한다.


$ gnome-session-properties


"추가" 버튼을 눌러 아래와 같이 등록한다.


이름: Set Default Monitor

명령: xrandr --output DP-2 --primary


지금 까지의 설정으로 디폴트 모니터 설정이 가능하였다.



다른 방법으로는 아래처럼 설정하면 된다.


~/.config/monitors.xml 파일에서 설정하는 것으로 원본 파일을 백업 후에


설정하고자 하는 모니터의 primary 태그에 yes를 설정하고, 다른 모니터의 primary 태그는 no로 설정을 한다.


 

번외

 

만약 이렇게 설정하였는데도 계속 설정이 바뀐다면,

 

~/.config/monitors.xml.backup 파일이 있는지 확인을 하고 이파일을 지워준다.

 

Win + p를 눌렀을 때 백업파일을 만드는데,

 

부팅을 하면서 ~/.config/monitors.xml.backup의 내용을 ~/.config/monitors.xml로 덮어씌워버리는 현상이 나타난다.

 

그리고 ~/.config/monitors.xml 파일에서 중복된 <configuration>~</configuration>이 있다면 그부분도 지워준다.
 

 

참고: https://askubuntu.com/questions/760942/set-primary-monitor-on-16-04

Posted by dcmru
,

Ubuntu 12.04 LTS 64bits를 사용중인데 문득 LibresOffice를 사용하다가 버전을 보니 3이었다.


업그레이드가 가능하지 않을까 생각하다가 보니 5.2버전까지 나와있었다.


그래서 업그레이드를 시도하였다. 5.2는 Ubuntu 12.04를 지원하지 않는 것으로 보이고, 5 버전으로만 올리고자 하였다.


먼저 이전버전 LibreOffice를 삭제해준다.


$ sudo apt-get remove --purge libreoffice*.*


LibreOffice PPA를 등록한다.


$ sudo add-apt-repository ppa:libreoffice/ppa


PPA를 등록하였으니 소프트웨어 목록을 업데이트 한다.


$ sudo apt-get update


LibreOffice를 설치한다.


$ sudo apt-get install libreoffice


설치 후 버전을 확인해보니 5.0.6.2 였다.



MS  Office에서 만든 docx 파일을 열어보니 버전 3에서 안보이던 표의 선이 표시가 되었다.


진작에 업데이트할 껄 하는 생각이 스쳐 지나갔다.

Posted by dcmru
,

OS X의 터미널에서 ls -al을 매번 입력하기도 귀찮았고,

리눅스에서 사용하던 "l", "ll" 명령어의 알리아스가 걸려있지 않아 설정을 해주었다.

 


$ vi ~/.bash_profile

alias ll='ls -lGaf'

alias l='ls -lah'

 


아래 명령어로 실행하면 터미널에 바로 반영이 된다.

$ source ~/.bash_profile

 

Posted by dcmru
,

우분투 16.04.1 LTS를 설치한 후 HDMI을 통해 소리가 출력되지 않았다.


HP N40L을 사용중이고, 시스템에서 따로 사운드 카드는 없으며, Mini DP로 출력되어 HDMI에 연결하는 NVS 310을 사용 중이다.

우분투의 설정에서 사운드에 갔지만 "가짜출력"만 선택이 되고 리스트에 있는 HDMI로 변경이 되지 않았다.

NVS 310의 두 개의 Mini DP포트에서 2번 포트에 연결을 하였기에 아마도 두 번째 장치로 연결을 하면 될 것 같았다.


먼저 사운드 장치를 아래 명령어로 확인한다.


$ aplay -l

**** PLAYBACK 하드웨어 장치 목록 ****

0 카드: NVidia [HDA NVidia], 3 장치: HDMI 0 [HDMI 0]

  하위장치: 1/1

  하위장치 #0: subdevice #0

0 카드: NVidia [HDA NVidia], 7 장치: HDMI 1 [HDMI 1]

  하위장치: 1/1

  하위장치 #0: subdevice #0


/etc/asound.conf 파일을 만들어서 아래 내용을 넣어준다.

$ sudo vi /etc/asound.conf 

defaults.pcm.card 0

defaults.pcm.device 1


만약 첫 번째 카드의 첫 번째 장치는 아래와 같이 설정하면 될 것이다.

defaults.pcm.card 0

defaults.pcm.device 0


설정 후 재부팅한 결과 부팅음을 들을 수 있었다.

Posted by dcmru
,

우분투 12.04 64비트에서 gdb 사용 시 다음과 같은 에러가 발생하였다.


(gdb) r

Starting program: /path/to/home/foo

[Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Cannot find new threads: generic error


검색 결과 아래 링크에서 해결방법을 찾았다.

http://stackoverflow.com/questions/2702628/gdb-cannot-find-new-threads-generic-error


정리를 하자면 몇가지 방법이 있지만

로그인한 유저의 홈디렉터리에 ".gdbinit" 파일을 만들고, 64비트일 경우 아래 내용을 넣어준다.


$ cat .gdbinit 

set env LD_PRELOAD /lib/x86_64-linux-gnu/libpthread.so.0


32비트이면 libpthread.so.0경로를 /lib/libpthread.so.0로 변경해준다.

Posted by dcmru
,

submodule을 사용하는 Git 사용 중에 아래와 같은 에러가 발생하였다.


$ git status

fatal: Not a git repository: /path/to/project/.git/modules/modules/common


구글에 검색 결과 원인은 없고, 해결방법만 나와 있었다.

해결방법은 프로젝트 디렉터리의 ".git"를 삭제하고 git init 명령어를 실행하라는 것이었다.

이렇게 하니 위의 에러는 없어졌지만 git remote -v 한 결과 원격저장소 내용이 다 사라졌다.

다른 설정들도 지워졌으리라 생각된다.


다시 git clone으로 프로젝트를 받아서 해결하였지만 원인이 궁금하였다.

해당 프로젝트 상위의 다른 프로젝트에서도 같은 에러가 발생하였다.

에러가 발생한 저장소를 백업하고 git clone로  같은 프로젝트를 받은 후 diff -r로 비교해보았다.


그러자 원인을 알것 같다.

몇 일 전 디렉터리를 정리하느라 소스가 있는 디렉터리의 상위 디렉터리 이름을 변경한 적이 있다.

diff했더니 변경되기 전 경로로 .git내의 파일들에 기록이 되어있었다.


/path/from/project/.git -> /path/to/project/.git


다른 원인도 있을 수 있겠으나 위와 같은 경우

원인을 알았으니 소스의 상위 디렉터리 경로를 마음대로 바꾸는 일은 없길 바란다.

변경하였으면 git clone으로 새로 받기를 바란다.


우분투 12.04에서 사용 중인 git 버전은 다음과 같다.

$ git --version

git version 1.7.9.5

'형상관리 > VCS' 카테고리의 다른 글

SVN 커밋 로그 검사  (0) 2017.01.04
Posted by dcmru
,

로지텍 K811을 급 직구를 하여 사용하게 되었다.


텐키레스 키보드를 사용하여 일하는 환경을 만들고 싶었으나 기계식 키보드를 사용한다고만 마음 먹고 사지를 않았었다.


맥북프로에 연결할 목적이었으나 사용하다 보니 갤럭시 7엣지에도 연결하게 되고,

우분투를 사용하는 데스크탑에도 연결하게 되었다.


맥북프로 레티나 및 부트캠프까지 연결할 목적이다보니 K810보다는 K811을 선택하였다.

윈도우에서는 맥(MAC)의 커맨드 키가 윈도우키로 매칭이 되다보니 K810의 배치보다는 K811이 맥과 윈도우에 동시사용에 적합하다고 생각되었다.

이미 맥북프로의 키로 부트캠프 사용에 익숙해져서 인지도 모르겠다.


다만 단점으로는 Setpoint 프로그램(Logitech Options)이 맥용 밖에 제공되지 않는다.

그리고 Setpoint에서의 펑션키 설정은 K811의 전원 스위치를 껏다 키면 설정이 날아가 버린다.


K811이 3대까지 멀티 페어링이 되기 때문에 맥북프로에 맥과 부트캠프 연결은 하나의 페어링으로 무리없이 연결되었다.

갤럭시 S7 엣지도 하나의 페어링으로 연결하여 사용하였다.

페어링이 하나 남아서 usb 키보드를 사용하고 있는 우분투에도 연결하려고 하니 데스크탑에는 블루투스 모듈이 없다.


그래서 급 블루투스 동글을 구입하였다.

K811 및 K810은 csr 블루투스 칩을 사용한 동글은 연결이 되지 않는다는 정보를 입수하여 브로드컴 칩을 사용하는 BU-4096을 구입하였다.

fusionfnc 제품으로 골랐는데, inote도 같은 브랜드이고, 이번에 도착한 것을 보니 vpluse 이름으로 왔다.

모두 동일제품이었다.


 블루투스 동글 도착 후 데스크탑에 연결하니 장치 인식은 아무런 설정없이 인식되었다.


$ lsusb

......

Bus 002 Device 007: ID 0a5c:21e8 Broadcom Corp.


그렇다면 이제 블루투스 동글과 K811을 페어링해야 되는데 어떻게 해야하나?

잠깐 검색 결과 우분투 "시스템 설정"의 "블루투스"에서 연결을 시도하였다.


먼저 블루투스 서비스가 실행되고 있는지 확인 결과 실행이 되고 있었다.

$ service bluetooth status

bluetooth start/running, process 1194


"프로그램" -> "시스템 도구" -> "시스템 설정" -> "블루투스"에서 왼쪽 하단 "+" 버튼을 누르면 페어링을 위한 창이 뜬다.

"계속"을 눌러 다음 창에서 장치를 검색하는데, K811이 검색되면 K811을 선택 후 "다음"을 누른다.

이후 화면에서 출력된 6자리 핀코드를 K811에서 입력 후 엔터를 누르라는데 왠걸 장치 인식은 성공하였으나 연결은 계속 실패한다.


추가 검색결과 아래의 블로그에서 설명하는 대로 따라한 결과 페어링을 성공하였다.

http://logon.tistory.com/217

http://blog.chschmid.com/?p=1537


절차를 정리하면 다음과 같다.


1. 다음 명령어로 블루투스 동글이 연결되었는지 확인 및 연결한다.

    아마도 아래 명령어를 실행하지 않아도 블루투스 동글을 usb에 연결하면 자동으로 인식할 것이다.

$ hciconfig 

hci0: Type: BR/EDR  Bus: USB

BD Address: XX:XX:XX:XX:XX:XX  ACL MTU: 1021:8  SCO MTU: 64:1

UP RUNNING PSCAN 

RX bytes:227223 acl:11202 sco:0 events:2363 errors:0

TX bytes:16647 acl:192 sco:0 commands:2140 errors:0


$ sudo hciconfig hci0 up

$ hcitool dev

Devices:

hci0 XX:XX:XX:XX:XX:XX


2. 터미널에서 다음 패키지를 설치한다.

    링크에서는 blueman을 같이 설치하라고 하는데, 기본 블루투스 관리자와 중복이 되므로 설치할 필요가 없다.

    그리고 빠른 실행 창(?)에 블루투스 관리자가 2개이므로 두 개의 블루투스 아이콘이 보이게 된다.

$ sudo apt-get install bluez-hcidump bluez-utils

3. 블루투스 동글을 usb 포트에 연결한다.

4. "프로그램" -> "시스템 도구" -> "시스템 설정" -> "블루투스"를 실행한다.

5. K811의 페어링 대기모드 설정을 한다. 펑션키의 F1, F2, F3에서 설정하고자 하는 키를 눌러 연결을 시도하도록 한다.

6. 터미널에서 다음 명령을 실행하여 K811의 MAC 주소를 찾는다.

$ hcitool scan

Scanning ...

             XX:XX:XX:XX:XX:XX      Logitech K811

7. MAC 주소인 XX:XX:XX:XX:XX:XX를 복사한다.

8. 터미널에서 다음 명령을 실행하여 K811을 연결한다.

$ sudo bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX

출력되는 화면에서 6자리 핀코드가 보일 것이다. 이 핀코드를 K811에서 입력 후에 엔터를 입력하면 연결이 성공적으로 되었다고 표시가 될 것이다.

9. 4번에서 실행한 "블루투스"에서 K811이 검색된 후 K811을 선택하고 "다음"을 누른 후 출력되는  6자리 핀을 입력하지 말고,

    8번에서 실행한 결과에서 나오는 6자리 핀코드를 누른다.


    만약 링크에서 참고한 blueman을 설치하여 사용한다면

     "프로그램" -> "시스템 도구" -> "기본 설정" -> "블루투스 관리자"를 사용하여 아래 절차대로 설정한다.

    9-1. K811을 선택하고 오른쪽 마우스 키를 누른 후 표시되는 팝업에서 "Trust"를 누른다.

    9-2. 다시 "블루투스 관리자"에서 K811을 선택하고 오른쪽 마우스 키를 누른 후 표시되는 팝업에서 "Setup"을 누른 후

            "Bluetooth Assistant" 창에서 연결대상의 "입력 서비스"를 선택 후 "앞으로" 버튼을 누른다.


연결이 한 번에 안된다면, 몇 번 시도하면 연결이 되더라.


왜 핀코드가 우분투의 "프로그램" -> "시스템 도구" -> "시스템 설정" -> "블루투스" 연결 화면에 보여지는 것과

bluez-simple-agent 및 hcidump 명령어를 사용하여 출력한 것과 다른 것인지 의문이다.

이로써 총 4대의 장치를 연결하게 되었다.

키보드 사이즈가 작다보니 업무용 책상의 환경이 보다 넓어져서 만족한다.


1. 기본 펑션키를 사용하도록 맥에서 Logitech Options에서 설정을 해놓았을 때 키보드 전원을 껏다 키면 설정이 날아가 버린다.

    그러므로 키보드 전원을 끄지 않도록 한다. 전원을 끄지 않더라도 배터리는 상당히 오래간다.

    K810은 리눅스와 윈도우에서 설정을 하도록 간단한 프로그램과 스크립트가 있던데, K811은 찾지 못했다.

    시간날 때 도전!

2. 키보드 배터리를 절약하기 위해 백라이트를 끄고 싶다면 빛조절 센서부(F13 위쪽인듯) 부분을 어둡게 하여 백라이트가 동작하도록 한다음 빛줄임키(F6)로 꺼버린다.

    회사에서만 사용하다보니 주변이 어두울 때가 없더라~

3. Mac OS에서 한글 입력모드일 때 Alt 키를 누른상태에서 키보드를 치면 영어입력이 가능하다. 반대는 안됨. Alt+Shift를 같이 누른상태에서는 대문자 입력도 가능.

4. 충전 중 사용가능.

Posted by dcmru
,

유지보수 관리를 위해 SVN의 커밋 로그 포맷을 정하여 사용 중이었다.

모두 잘지켜주었으면 좋겠지만 개발에 열정을 모두 쏟아 부은 결과(?) 커밋 로그를 대충 써버리는 사태에 당도하였다.

물론 약속을 잘지키면 이런 수고를 덜할 수 있겠으나 그러하지 못하였다.

그래서 대책을 강구하던 중에 hook 기능이 있다는 것을 알았다.


svn 저장소를 생성하게 되면 저장소의 디렉토리 구조는 다음과 같다.

$ ls

README.txt  conf  dav  db  format  hooks  locks


hooks에 들어가게 되면 상황에 맞는 템플릿 파일들이 있다.

$ cd hooks

$ ls

post-commit  post-commit.tmpl  post-lock.tmpl  post-revprop-change.tmpl  post-unlock.tmpl  pre-commit.tmpl  pre-lock.tmpl  pre-revprop-change.tmpl

pre-unlock.tmpl  start-commit.tmpl


커밋을 하고자 할 때 로그를 검사해야하므로 pre-commit.tmpl을 사용하도록 하겠다.


$ cp -rp pre-commit-tmpl pre-commit

$ vi pre-commit

#!/bin/sh


REPOS="$1"

TXN="$2"


# Make sure that the log message contains some text.

SVNLOOKOK=1

SVNLOOK=/usr/bin/svnlook

$SVNLOOK log -t "$TXN" "$REPOS" | \

grep "[a-zA-Z0-9]" > /dev/null || SVNLOOKOK=0

if [ $SVNLOOKOK = 0 ]; then

    echo "Empty log messages are not allowed. Please provide a proper log message." >&2

    exit 1

fi


# Comments should have more than 7 "[" characters.

LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "\[" | wc -l)

if [ "$LOGMSG" -lt 7 ]; then

    echo -e "Please provide a meaningful comment when committing changes." 1>&2

    exit 1

fi


# Comments should have more than 7 "]" characters.

LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "\]" | wc -l)

if [ "$LOGMSG" -lt 7 ]; then

    echo -e "Please provide a meaningful comment when committing changes." 1>&2

    exit 1

fi


# All checks passed, so allow the commit.

exit 0


저장하고 나온 후 실행퍼미션을 부여해준다.

$ chmod +x pre-commit


부연 설명을 하자면 첫번 째 검사는 로그메세지를 포함하는지 검사하는 것이고,

두 번째와 세 번째 검사는 "[", "]"를 포함하는 라인의 개수가 7개보다 작으면 커밋을 실패하도록 한 것이다.

한글 단어를 포함하는지 검사 하고자 하였으나 인코딩이 기본 UTF-8이 아니기 때문에 에러가 발생한다.

svn 버전 1.8부터 conf에서 파일의 환경설정을 하도록 하는 기능이 있다고 하나 사용중인 버전이 낮기 때문에 이정도에서 적용하였다.


쉘이외에도 파이썬, php 등 여러가지 언어를 지원하므로 상황에 맞게 사용하면 된다.

'형상관리 > VCS' 카테고리의 다른 글

Git 사용중 Not a git repository 에러  (0) 2017.01.09
Posted by dcmru
,

개발한 앱 중에 잘동작되던 BroadcastReceiver가 다른사람이 소스를 수정 후 1회만 작동하고 동작이 되지 않는 현상이 나타났다.

사용한 형태는 Service에서 registerReceiver()와 unregisterReceiver()를 사용한 동적 리시버 형태이다.

 

원인을 파악한 결과 다음과 같았다.

 

다른 소스에서 해당 서비스를 적당한 인자를 넣은 intent를 포함시켜 startService()로 호출하여

onStartCommand()에서 전달된 intent의 구분자에 따라 registerReceiver() 및 unregisterReceiver()를 하도록한 형태로

서비스내에서 지속적으로 리시버가 동작하지 않고, onStartCommand를 통해 1회만 동작하고 정지되어 버렸다.

 

또한 dumpsys를 통해 해당 앱의 서비스에 등록된 리시버를 분석한 결과 등록한 리시버가 적당한 때에 해제되지 않아 메모리 누수로 이어지는 것을 확인하였다.

 

연구결과 동적 리시버는 서비스(Service) 또는 액티비티(Activity)의 생명주기(Lifecycle)를 같이 하도록 사용하는 것이 좋다는 결론이다.

즉, onCreate()에서 해당 리시버의 registerReceiver()를 호출하여 등록을 하고,

onDestroy()에서 unregisterReceiver()를 호출하여 리시버를 등록해제 하는 것이다.

 

다만 서비스가 강제 종료되면 동적 리시버가 동작하지 않게 되므로 적당한 서비스 감시 또는 재시작 루틴이 필요할 것이다.

아니면 정적 리시버 사용을 고려해야 한다.

Posted by dcmru
,

우분투 12.04 64bits에서 Nexus 5의 Factory 이미지를 안드로이드 버전별로 변경하고 루팅(Rooting) 할 경우가 있어 정리를 한다.

안드로이드 SDK 환경설정이 되어있고, 안드로이드 개발환경을 이해하고 있는 상태라는 가정하에 글을 작성한다.

그리고 Nexus 5는 부트로드가 언락(Unlock)된 상태이어야 한다.



1. 이미지 변경



1) link 에서 Nexus 5에 올리고 싶은 이미지를 다운로드 한다.

나의 경우 6.0.1에서 5.1.1로 다운그레이드 하기 위해 5.1.1 (LMY48M) 이미지를 다운로드 받았다.

정상적으로 다운로드 되었는지 각 이미지별 MD5 및 SHA-1의 Checksum 값과 비교해본다.

Checksum 값이 같으면 이상이 없는 것으로 압축을 해제하고, 터미널에서 풀린 디렉터리로 이동한다.


$ tar xvfz hammerhead-lmy48m-factory-bf3c82fd.tgz


$ cd hammerhead-lmy48m



2) Nexus 5 부트로드 모드로 진입한다.

Nexus 5의 경우 부트로드 모드로 진입하는 방법은 전원을 끈 후 "볼륨 업" + "볼룸 다운" + "전원 버튼"을 동시에 눌르면 되지만

adb 명령어를 사용하면 간편하게 명령으로 부트로드 모드로 재부팅할 수 있다.

adb 명령 및 루팅에도 사용하기 위해 "개발자 옵션"에서 "USB 디버깅"을 On하고,

"USB 디버깅에 대한 엑세스 권한" 요청 다이얼로그가 뜨면 "확인"을 누른다.

다시 USB 디버깅에 대한 허용을 다시 묻지 않기 위해서는 "이 컴퓨터에서 항상 허용"에 체크를 한다.


$ adb devices

List of devices attached 

[장치명] device


$ adb reboot-bootloader



3) 부트로더에 진입을 한 후 아래 스크립트를 실행하여 이미지를 Nexus 5에 쓴다.

flash-all.sh 스크립트 내부에서는 fastboot 명령어를 사용하는데 이 때 root 권한이 필요하다.

그러므로 sudo를 사용하거나 su를 사용하여 root 권한을 얻은 후 사용한다.


$ sudo ./flash-all.sh



4) 실행이 완료된 후 Nexus 5가 정상적으로 부팅되면, 원하는 버전의 이미지로 쓰기가 완료된 것이다.



2. 루팅(Rooting)

루팅은 커스텀 리커버리(CWM or TWRP)와 SuperSU가 필요하다.

나의 경우 CWM 6.0.4.5를 사용하였으며 오피시얼 사이트가 접속이 되지 않아 다운받아둔 이미지를 사용했다.

SuperSU는 link에 가서 STABLE 버전인 SuperSU v2.65를 다운로드 한다.



1) 부트로드가 언락된 상태에서 위(1.->2)에 설명한 대로 Nexus 5 부트로드로 진입한다.



2) CWM 커스텀 리커버리를 fastboot 명령어를 사용하여 Nexus 5에 쓴다.


$ sudo fastboot flash recovery recovery-clockwork-touch-6.0.4.5-hammerhead.img



3) CWM 커스텀 리커버리 쓰기를 완료한 후 부트로드에서 복구모드(Recovery mode)로 부팅을 한다.



4) 다운로드 받았던 UPDATE-SuperSU-v2.65-20151226141550.zip를 adb 명령어를 사용하여 Nexus 5의 /sdcard로 복사한다.


$ adb push UPDATE-SuperSU-v2.65-20151226141550.zip /sdcard/UPDATE-SuperSU-v2.65-20151226141550.zip



5) install zip -> choose zip from /sdcard -> 0/ -> UPDATE-SuperSU-v2.65-20151226141550.zip을 선택하여 설치한다.



6) 설치가 완료 되면 +++++Go Back+++++을 눌러 최상위 메뉴로 이동하여 reboot system now을 눌러 Nexus 5를 재부팅한다.



7) SuperSU 앱이 설치되어 있는 것을 확인하거나 adb shell을 실행하여 su 되는지 확인해본다.



8) 필요한 경우 Play Store에서 BusyBox를 설치하여 사용한다.


PS. Android 6.0.1 (Build M4B30Z) Root for Nexus 5: https://gist.github.com/deloz/6a9663ca7052fc4acf9c 

Posted by dcmru
,

안드로이드에서 실행가능한 명령어를 컴파일하여 실행 시 다음과 같은 에러가 발생한다.

error: only position independent executables (PIE) are supported.


다음 옵션을 gcc에 붙여준 후 컴파일 한다.

CFLAGS="-fPIE"
CPPLAGS="$CPPFLAGS -fPIE"
CXXLAGS="$CXXFLAGS -fPIE"
LDFLAGS="-fPIE -pie"

Posted by dcmru
,

다음 명령어로 안드로이드 쉘에 접속한다.

$ adb shell


접속된 안드로이드 쉘에서 다음 명령을 실행하면 /system을 rw로 마운트 할 수 있다.

$ su -

# /system/bin/mount -o remount,rw /system

 

다시 read only로 바꾸려면 다음과 같은 명령어를 실행한다.

# /system/bin/mount -o remount,ro /system

Posted by dcmru
,

VMware workstation 9를 사용 중에 Guest OS로 CentOS 6.3 x86을 사용 중이었다.

 

재부팅을 하자 부팅 중에 아래와 같은 에러가 발생하면서 부팅이 되지 않는다.

 

Kernel panic - not syncing

 

원인을 찾아본 결과 RAMDISK 관련하여 /boot/initramfs-2.6.32-279.el6.i686.img 파일이 깨진듯했다.

중간의 커널 버전은 자신의 커널버전에 따라 다르다.

 

해결방법은 아래 참고의 VMware의 기술사이트의 내용을 따라하면 해결할 수 있다.

내용을 설명하자면 CentOS 시디 이미지로 복구모드로 부팅하여 initramfs.img 파일을 새로 생성하는 것이다.

나의 경우 i686 이미지이지만 x86_64 시디 이미지로 부팅하여 i686 이미지를 생성할 수 있었다.

즉 내용 중에 `uname -r` 부분을 자신의 커널버전과 CPU 타입을 직접 적어주면 된다.

 

참고

http://forum.blackmagicdesign.com/viewtopic.php?f=12&t=9703

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2086520

Posted by dcmru
,

우분투 12.04 64bits를 사용하면서 설치된 하드디스크의 상태를 체크할 수 있는 방법을 찾아 보았다.


쉘에서 아래 패키지를 설치한다.

$ sudo apt-get install smartmontools smart-notifier gsmartcontrol ssmtp


smartmontools는 커맨드 라인에서 하드디스크의 SMART 정보를 볼 수 있는 명령어이다.

smart-notifier는 메일을 통해 하드디스크 상태를 알려주는 기능을 한다.

gsmartcontrol는 GUI 툴이다.

ssmtp는 외부 메일로 릴레이는 해주는 패키지이다. 데스크탑에서 사용하기 때문에 외부 메일을 통해 메일을 보낸다.


/etc/default/smartmontools 파일을 열어 다음 내용에 해당하는 라인의 주석을 제거한다.
start_smartd=yes


/etc/smartd.conf 파일을 열어 다음 내용에 해당하는 라인을 아래 내용과 같이 수정한다. "-M test"는 테스트를 위한 옵션이다.

DEVICESCAN -d removable -n standby -m foo@var.com -M test -M exec /usr/share/smartmontools/smartd-runner


/etc/ssmtp/ssmtp.conf 파일을 열어 다음과 같이 내용을 수정한다.

AuthUser=foo@var.com               <= 받을 메일 주소
AuthPass=Your-Mail-Password        <= 메일 주소의 비밀번호
FromLineOverride=YES
mailhub=mail.var.com:587           <= 메일 서버 주소 및 포트, 기본 포트일 경우 ":587" 삭제
UseSTARTTLS=YES


/usr/sbin/sendmail 명령어를 ls -al로 링크를 확인하여 링크가 ssmtp로 되어 있지 않으면 /usr/sbin/sendmail는 백업을 하고 다음 명령을 실행하여 링크를 걸어준다.

$ sudo ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail


다음 명령을 실행하여 smartmontools를 재시작 한다.

$ /etc/init.d/smartmontools restart


foo@var.com으로 하드디스크의 체크 테스트 메일이 왔는지 확인한다.

메일이 정상적으로 왔으면 /etc/smartd.conf 파일을 열어 아래와 같이 테스트를 위한 내용인 "-M test"를 제거한다.

DEVICESCAN -d removable -n standby -m foo@var.com -M exec /usr/share/smartmontools/smartd-runner


다음 명령을 실행하여 smartmontools를 재시작 한다.

$ /etc/init.d/smartmontools restart


smartmontools 툴을 이용하여 하드디스크의 여러가지 에러정보와 상태를 알 수 있으며, gsmartcontrol 툴은 GUI를 제공해준다.


참고

http://my-debian-linux.blogspot.kr/2013/11/smartmontools-smart-notifier.html

https://www.maketecheasier.com/monitor-hard-disk-health-linux/

https://www.howtoforge.com/tutorial/monitor-harddisk-with-smartmon-on-ubuntu/

http://www.cyberciti.biz/tips/linux-use-gmail-as-a-smarthost.html

Posted by dcmru
,

Android Studio 1.5에서 안드로이드 프로젝트 오픈 시 아래 에러가 발생하였다.


Unable to load class org.gradle.api.publication.maven.internal.DefaultMavenFactory


Caused by: java.lang.NoClassDefFoundError: org/gradle/api/publication/maven/internal/DefaultMavenFactory


Android Studio 1.5는 Gradle 2.4를 기본으로 사용하고, Gradle 2.4는 android-maven-gradle-plugin를 1.3 버전을 사용해야 한다.


root build.gradle 파일을 열어서  아래 내용으로 classpath 선언해 준다.


buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}


참고: https://github.com/dcendents/android-maven-gradle-plugin

Posted by dcmru
,

우분투에 켄싱턴 슬림블레이드를 물려 사용중인데 공식적인 리눅스용 유틸을 제공하지 않아 마우스 버튼을 리맵할 수 없어 그냥 사용 중이었다.


고민 끝에 방법이 없는지 찾아 보니 버튼을 xinput 명령어로 재설정하여 사용할 수 있었다.


아래 사이트를 참고하여 각 버튼의 ID를 참고한다.

http://wiki.mbirth.de/know-how/software/linux/remapping-mouse-buttons.html


아래 사이트를 참고하여 xinput 명령어를 사용하여 버튼에 대한 ID를 재설정한다.

http://askubuntu.com/questions/492744/how-do-i-automatically-remap-buttons-on-my-mouse-at-startup


나의 경우 켄싱턴 슬림블레이드의 4개의 버튼을 다음과 같이 설정하였다.

왼손으로 사용할 경우 왼쪽 클릭, 오른쪽 클릭의 위치를 바꿀 수도 있다.


상단 왼쪽 버튼: 앞으로

상단 오른쪽 버튼: 뒤로

하단 왼쪽 버튼: 왼쪽 클릭

하단 오른쪽 버튼: 오른쪽 클릭


아래 명령어로 입력 장치의 모델 명과 ID를 찾는다.

$ xinput list


그리고 다음 명령어로 장치의 ID로 장치에 대한 버튼 map을 알아본다. 아래 그림에서 보면 Kensington에 id=9로 되어 있는 것을 볼 수 있다.

$ xinput get-button-map 9

또는

$ xinput get-button-map "Kensington Kensington Slimblade Trackball"


버튼 map을 확인하였으면 다시 버튼에 대한 map을 설정한다.

$ xinput set-button-map 9 1 9  3 4 5 6 7 8 2 10 11 12

또는

$ xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 9  3 4 5 6 7 8 2 10 11 12


트랙볼의 상단 버튼이 "앞으로", "뒤로" 로 설정이 되었다.

자주 사용하는 프로그램이 이클립스와 파이어폭스인데 "앞으로", "뒤로" 버튼을 사용할 수 있게 되니 프로그램의 사용도가 상당히 쾌적해지고 빠르게 접근 가능해졌다.





PC를 재부팅하면 다시 원래의 상태로 돌아오기 때문에 시작 시 xinput 명령어가 자동으로 실행이 되도록 로그인한 사용자의 홈 디렉터리의 ".xsessionrc" 파일에 다음과 같이 설정한다.

파일이 없다면 파일을 생성하고 아래의 내용을 추가해준다.


kensington_mouse_id=$(xinput | grep "Kensington Kensington Slimblade Trackball" | awk '{print substr($7,4,2)}')
xinput set-button-map $kensington_mouse_id 1 9 3 4 5 6 7 8 2 10 11 12


Posted by dcmru
,

vi 또는 vim에서


삭제 명령어

:1,1000d -> 1행부터 1000행까지 삭제

:dG -> 커서를 포함하는 행부터 파일 끝까지 삭제

:dgg -> 커서를 포함하는 행부터 파일 처음까지 삭제


치환

:%s/search-string/replace-string/g -> 파일 전체 치환

:g/search-string/s//replace-string/gc -> 각 발생 탐색 후 확인하고 대체

:1,.s/search-string/replace-string/ -> 1부터 현재 행의 search-string을 replace-string로 전부 대체


16진수 보기

:%xxd

원래대로

:%!xxd

Posted by dcmru
,

우분투 12.04 x86_64에 PgAdmin을 설치하려고 보니 소스로 설치하려면 번거로운 점이 많아 패키지 형태로 설치하는 방법을 정리해본다.


1. /etc/apt/sources.list.d/pgdg.list 파일을 만들고, 다음 라인을 추가한다.

deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main


2. 다음 명령어로 signing key를 import한다.

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
  sudo apt-key add -


3. 다음 명령어로 패키지 리스트를 업데이트 한다.

$ sudo apt-get update


4. 다음 명령어로 PostgreSQL 9.3과 PgAdmin3을 설치한다.

$ apt-get install postgresql-9.3 pgadmin3


참고: http://www.postgresql.org/download/linux/ubuntu/

Posted by dcmru
,

아래 링크에서 YARA 최신 버전을 다운로드 받는다. Google Code에서 GitHub로 옮긴 것으로 보인다.

https://github.com/plusvic/yara/releases/tag/v3.1.0


아래 링크에서 YARA 설치 방법을 참고한다.

http://yara.readthedocs.org/en/latest/gettingstarted.html#compiling-and-installing-yara


기존 설치 문서를 참고한 결과 아래 패키지를 먼저 설치하였다.

v3에서도 필요한지는 체크하지 못하였다.

# apt-get install libpcre3-dev
# apt-get install g++


다운로드 받은 소스를 압축 해제 한다.

# tar xvfz yara-3.1.0.tar.gz
# cd yara-3.1.0/


README를 살펴본 결과 기본적으로 bootstrap.sh를 실행하면 configure 파일이 생성이 되는데 에러가 발생한다.

의존 되는 패키지가 설치되어 있지 않아 에러가 발생한 것이다.


발생한 에러는 다음과 같다.

# ./bootstrap.sh
== bootstraping yara
libtoolize...
Did not find a supported libtoolize


다음과 같이 libtool을 설치하였다.

# apt-get install libtool


다음과 같은 에러가 또 발생하였다.

# ./bootstrap.sh 

== bootstraping yara
libtoolize...
libtoolize: putting auxiliary files in `.'.
libtoolize: linking file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: linking file `m4/libtool.m4'
libtoolize: linking file `m4/ltoptions.m4'
libtoolize: linking file `m4/ltsugar.m4'
libtoolize: linking file `m4/ltversion.m4'
libtoolize: linking file `m4/lt~obsolete.m4'
aclocal...
Did not find a supported aclocal


automake가 설치되어 있지 않아 발생한 것으로 아래 명령어로 설치 여부를 판단한다.

# dpkg --get-selections | grep automake


아래 명령어로 automake를 설치한다.
# apt-get install automake


다시 bootstrap.sh를 실행한 결과 정상 실행되었다.

# ./bootstrap.sh

== bootstraping yara
libtoolize...
libtoolize: putting auxiliary files in `.'.
libtoolize: linking file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: linking file `m4/libtool.m4'
libtoolize: linking file `m4/ltoptions.m4'
libtoolize: linking file `m4/ltsugar.m4'
libtoolize: linking file `m4/ltversion.m4'
libtoolize: linking file `m4/lt~obsolete.m4'
aclocal...
autoheader...
automake...
configure.ac:13: installing `./ar-lib'
configure.ac:19: installing `./config.guess'
configure.ac:19: installing `./config.sub'
configure.ac:5: installing `./install-sh'
configure.ac:5: installing `./missing'
libyara/Makefile.am: installing `./depcomp'
configure.ac: installing `./ylwrap'
autoconf...


다음과 같이 configure와 make, make install을 실행한다.

# ./configure
# make
# make install


정상 설치 여부를 판단하기 위해 버전 정보를 출력해본다.

# yara -version

yara 3.1


참고: https://github.com/plusvic/yara/issues/98


Posted by dcmru
,

Oracle Linux 6.3 x86_64를 설치할 일이 있어서 설치를 해보았다.

 

기본 커널 버전은 다음과 같다.

 

[root@OracleLinux6]# uname -r
2.6.39-200.24.1.el6uek.x86_64
[root@OracleLinux6]# cat /etc/oracle-release
Oracle Linux Server release 6.3

 

Redhat 계열의 리눅스여서 네트워크 설정을 위해 setup을 실행한 후 IP정보를 설정하였다.

 

설정 후 ifconfig를 실행해보니 eth0이 보이지가 않는다.

 

이유를 찾아본 결과 부팅 시에 자동으로 장치가 올라오도록 설정이 되어 있지 않았다.

 

다음 파일을 열어 아래와 같은 항목을 수정해준다.

# vi /etc/sysconfig/networking/devices/ifcfg-eth0

ONBOOT=yes

 

아래 명령을 실행하여 재부팅해준 결과 eth0이 리스트업 되었다.

# reboot

 

참고: http://www.ozmoroz.com/2012/10/troubleshooting-eth0-in-oracle-linux.html

 

PS. 설치 시 수동 네트워크 설정에서 IP설정과 부팅 시 enable 되도록 설정하는 것이 번거롭지 않다.

Posted by dcmru
,

우분투 12.04 64bits에 ADT를 설치 후 사용을 하다가 Android Virtual Device Manager에서 AVD 생성 시


"No system images installed for this target"가 표시되며 AVD를 생성할 수 없었다.


해당 API 버전에 ARM EABI v7a System Image는 당연히 설치한 상태이다.



다음 그림에서와 같이 "CPU/ABI"에서 처럼 시스템 이미지를 선택할 수가 없다.



원인은 터미널에서 아래 명령과 같이 Android SDK Manager와 Android Virtual Device Manager를 실행할 수가 있는데, 이 때 경로가 꼬이는 것으로 보인다.

$ android

$ android avd



즉 sdk/system-images/android-19/armeabi-v7a와 같은 경로에 system image가 있어야 하는데


sdk/system-images/android-16/default/armeabi-v7a와 같이 경로 중간에 default가 추가로 들어있다.


해결 방법은 중간의 default를 없애주는 것이다. 아래의 경로가 되도록 디렉터리를 옮겨준다.


sdk/system-images/android-16/default/armeabi-v7a -> sdk/system-images/android-16/armeabi-v7a


아래 그림과 같이 "CPU/ABI"에서 system image를 선택할 수 있게된다.



Posted by dcmru
,

우분투 12.04를 설치하면 X-window 로그인 화면에 사용하는 계정 이외에 손님 세션이 하나 더 있다.


이를 제거하기 위해서는 아래와 같이 설정한다.


vi 명령어로 lightdm.conf를 열어 맨 아래줄에 내용을 추가한다.

$ sudo vi /etc/lightdm/lightdm.conf

allow-guest=false


재부팅한 후 로그인 창에 손님 세션이 사라졌는지 확인한다.



우분투 16.04.1 LTS를 설치한 결과 LightDM 설정파일 디렉터리 구조가 바뀌었다.

Ctrl+Alt+T로 터미널을 실행 한 후

$ sudo mkdir /etc/lightdm/lightdm.conf.d

$ sudo sh -c 'printf "[SeatDefaults]\nallow-guest=false\n" > /etc/lightdm/lightdm.conf.d/50-no-guest.conf'


실행 한 후 재부팅한다.

손님 세션 복원은 50-no-guest.conf 파일을 삭제하고 재부팅 해주면 된다.


guest 계정의 원격로그인의 제어는 다음과 같이 실행하면 된다.

$ sudo sh -c 'printf "[SeatDefaults]\ngreeter-show-remote-login=false\n" >/etc/lightdm/lightdm.conf.d/50-no-remote-login.conf'


복원은 50-no-remote-login.conf 파일을 삭제하고 재부팅 해주면 된다.

Posted by dcmru
,

우분투 12.04 64bits에서 이클립스를 설치 후 Content Assist의 단축키로 자주 사용하는 Ctrl+Space가 동작하지 않았다.


"이클립스->Window->Preferences->General->Keys->Content Assist"의 기본 단축키가 Alt+/로 설정이 되어 있었다.


이를 Ctrl+Space로 변경을 해주었지만 우분투의 한글 입력기의 한영 변환 기본키로 Ctrl+Space로 설정이 되어 있어 이를 또 변경해 주어야 한다.


입력기의 정보를 살펴본 결과 IBus 1.4.1를 사용하고 있었다.


"IBus->기본 설정->일반->키보드 바로 가기"에서 단축키 중의 하나인 Ctrl+Space를 제거하자 이클립스에서 정상적으로 동작이 되었다.


참고: http://blog.outsider.ne.kr/432

Posted by dcmru
,

우분투에서 저장소를 국내 서버로 변경하면 다운로드 속도가 향상이 된다.


자주 사용하는 국내의 저장소 주소는 다음과 같다.

- www.neowiz.com

- ftp.daum.net


$ sudo cp -rp /etc/apt/sources.list /etc/apt/sources.list.kr

$ sudo vi /etc/apt/sources.list


vi에서 치환명령어를 사용하여 저장소 주소를 바꿔준다.


:%s/kr\.archive\.ubuntu\.com/www\.neowiz\.com/g

또는

:%s/kr\.archive\.ubuntu\.com/ftp\.daum\.net/g


저장하고 나온다.


저장소 정보를 업데이트 해준다.

$ sudo apt-get update


만약 사용 중에 apt-get update 시에 404 에러가 발생하거나 패키지 설치가 안된다면 각 저장소 주소를 변경해 사용한다.

가끔 파일이 없어 에러가 발생하는 경우가 있기 때문이다.

Posted by dcmru
,