'Programming'에 해당되는 글 91건

  1. 2011.05.24 리눅스 + 이클립스 트러블슈팅 (2)
  2. 2010.11.14 Trac NonType object 오류
  3. 2010.10.03 Makefile애서 플레그도 제대로 붙여야지....
  4. 2010.10.01 [MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?! (4)
  5. 2010.09.24 Trac + Git 연동를 해서 사용해보자. (6)

리눅스 + 이클립스 트러블슈팅


1. (특히) 자동완성시, 이클립스(helios)가 그냥 죽어 버릴때(SIGSEGV)

xulrunner를 1.9 버전을 쓰면 제대로 된다는 것은 익히 알고 있었지만,

이렇게 하면 FF4를 쓰지 못하기 때문에 어쩔수 없이 다른 방법을 찾다가 찾아낸 해결책.

(사실 이 방법이 더 깨끗하기도 하고)

아치의 경우 /usr/share/eclipse/eclipse.ini 파일에 다음 내용을 추가해 준다.

현재 내 eclipse.ini 파일, 강조 표시된 내용을 추가하면 된다.
-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.2.R36x_v20101019_1345
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Xms40m
-Xmx768m
-XX:MaxPermSize=512m
-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dorg.eclipse.swt.browser.XULRunnerPath==/usr/lib/xulrunner-2.0/

더 자세한 내용은 다음을 참조.

https://bbs.archlinux.org/viewtopic.php?id=115543

사실 이거 안지는 좀 되었는데,

(국내)인터넷에서도 간간히 안된다는 이야기는 있는데 해결책은 없고......

해서 걍 포스팅 해봄, 오랜만에 포스팅하는것이기도 하고,

ps; 매니패스트 파일 갱신할때 버그가 좀 있네요.

2 에러가 아닌데 에러라고 자꾸 우길때
- xml 파일에 공백 추가후 저장


3 레이아웃 파일을 만들었는데 R.java에 추가가 안될때
- 이클립스 재 시작


4 메뉴 -> 창 -> 환경 설정 -> 일반 -> 키 눌렀을때 다음과 같은 오류가 나온다면,
(또는 메뉴 -> 파일 -> 종료가 비활성화 되었을때
또는 메뉴 -> 창 -> 보기표시 의 하위 메뉴들이 비활성화 되었을때)

오류가 발생했습니다. 자세한 정보는 오류 로그를 참조하십시오.
No context available outside of the request service lifecycle.


WST를 Eclipse에서 Install시  경우 발생한다. (Eclipse Helios Repo를 잡고 설치하면 그러는것 같다? )

확실히 정확한 원인은 모르겠으나, 내가 추측하기전엔 아래 패키지를 설치해 주고 난 이후에 ADT를 설치 해야하는것 같다

(확실히 되는지 안되는지는 아직 확인해 보지 않았, 아치리눅스일 경우 다음과 같이 설치한다)
pacman -S eclipse-emf eclipse-gef eclipse-wtp-wst
5 실행(컴파일)시 다음 오류가 발생할때 (NoClassDefFoundError: 뒤에 프로젝트명이 없을떄)
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: .  Program will exit.

1) 창 -> 환경설정 -> Ant -> 런타임 -> Ant 홈(H) 에서 eclipse plugin 디렉토리 선택,

또는 왼쪽 아래에 짱 박혀있는 "기본값 복원" 클릭

만약, 이렇게 해도 별 진전이 없으면, 2번과 같이 해보세요

2) 파일 -> 작업공간 전환 -> 기타

이러면 "작업공간 실행기" 라는 다이얼로그가 뜬다

여기서 "새로운 작업공간"을 만들고 나서 다시 프로젝트를 import해서 사용한다.

6. XML파일을 고치고 실행했는데 에러가 날때

[2011-06-13 18:09:00 - Chapter03Exam01] Error in an XML file: aborting build.

1. res 디렉토리에 생성된 *.out.xml 파일을 모두 지우고, refresh

2. JAVA파일로 포커스를 이동후, 다시 컴파일
Trackback 0 Comment 2
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2011.05.24 23:15 신고 address edit & del reply

    으잉? 갑자기 왠 이클립스인가요?
    자바하세요?

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2011.05.25 19:31 신고 address edit & del

      맛폰이에서 프로그램좀 만들어 볼려구요.
      그냥 간단하게 맛이나보게요.
      깊게 들어갈 생각은 없고, 그냥 가벼운 프로그램이나 만들어 보려구요

Trac NonType object 오류

Trac에서 다음과 같은 Oops 오류가 검출되면....

trac.ini 파일에 설정값이 제대로 안들어간 경우일수도 있으므로 확인해 보자

사용자 삽입 이미지

나 같은 경우에는 다음과 같이 설정되어 있었다

[trac]
repository_sync_per_request = (default)

알고 보니깐 저 값이 잘못되어서 에러가 났던것,

해결방법은 그냥 간단하게 default를 없애면 된다

[trac]
repository_sync_per_request =

이렇게 하면 일단 메인 위키페이지는 정상적으로 뜨는데,

Error with navigation contributor "BrowserModule"

메세지가 위에 뜬다... (스크린샷은 못찍었다......)

그리구 (git) 소스둘러보기 메뉴가 아예 뜨지 않고 타임라인(시간이력) 으로 들어가면 또 웁스 오류가 난다

아놔 다 고친줄 알았더니만 또 이 오류냐 !!!

이 오류 해결법은 다음과 같다....... 그냥 "trac-gitplugin"을 전부 지우고

(아치라면 AUR에 있는 패키지는 쓰지말자 컴파일도 안되는데다가 설치한다 해도 작동도 잘 안된다.)


다음과 같이 재 설치하면 된다

(아치가 아닐경우에는 그냥 easy_install 만 쓰면된다 - 그리고 나는 trac 0.12 임)
# easy_install-2.7 http://github.com/hvr/trac-git-plugin/tarball/master

이제 tracd를 재시작하면 에러 없이 잘 쓸수가 있게 된다. ㅋ

역시 문제가 생기면 다 지우고 재설치가 답인가......씁......

처음에 아치에서 파이썬버전이 막 바뀌면서 생긴 문제인줄 알았는데 그것이 아니라,

어떻게 하다가 설정값이 바껴서 생긴 문제인걸로 파악되었다.

나는 바꾼적이 없었는데... 패키지 깔면서 어떻게 설정값을 건들였거나, 아니면 설정값 정책이 변경된것 같다

이걸 몰라서 방치하다가 한달만에 고쳤다 ㅜ

그런데 trac사용법또 까먹었다는... 다시 좀더 봐야할듯....
Trackback 0 Comment 0

Makefile애서 플레그도 제대로 붙여야지....

오랜만에 프로파일링 기능함 써볼라구  Makefile.in 에 -pg 옵션을 추가..

그리고 막 소스를 고치고.... 컴파일해서 실행을.....

그런데! 잘 돌아가는 게.. 라이브러리내부에서 (그러니깐 제가 만든게 아니라는) 에러가..

"state not found" 라니, "connection time out" 이라니...

어째서 제대로 이벤트시그널을 Detect해내지를 못하니... 줘도 못먹냐 ㅠㅠ

뭔가 잘못 고쳤을거야... 라고 생각

그래서 소스를 열심히 살펴봄.. 별 바꾼것도 없는데 안됨....

혹시 몰라서 모듈을 따로 분리한다음에 컴파일 해봤음 - "어 이건 되넹" 뭐가 문제야 하다가..

Makefile.in을 차자보니깐 이게 왠걸.. CFLAG에 옵션이 추가된게 아니라 LIB에 -pg가 추가되어 있음

아놔...... 대체 왜 에러가 안난거야? 링크할때나 에러 안나나....

그래서 CFLAG에 추가하니깐 잘 돌아가네염,

아놔 이게 무슨짓이야 이거때문에 어젯밤이랑 오늘 오전 날렸음


3줄 요약

Makefile에도 신경좀 씁시다.


프로그램이 이상하게 돌아가는게 링킹/컴파일이 제대로 안되서(에러가 안나도!)

그럴수두 있다는

Trackback 0 Comment 0

[MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?!

이메일 보낼일이 있어서 코드 프로젝트에서 SMTP 코드를 배껴서 사용중이 었음

(원래 소스가 그렇게 되어 있었다오 -_- 쓰고 싶어서 쓴게 아님 ㅠㅠ

회사에서는 보통 c&p 디버깅 / 테스트가 일이라... 아 정말 싫다.)

그런데 이넘이 쓰레드 안아서 돌아가야할 필요가 있어서 않에 넣어서 사용하고 있는데

갑자기 뻑뻑 죽어버리는거임 - 아마도 MFC assertion? 에러 였던거 같은데...

디버깅 돌려보니깐 무슨 이름도 모르는 생판첨보는 MFC함수에 브포가 찍혀있고 -_-.....

함수스택타고 위로 올라가보니깐 CSocket.Create() 메소드 - 를 쓴 부분까지 올라오게 되더군여

이거 뭔소린가... 걍 싱글스레드 쓸땐 잘 작동하던 놈이 왜 이짓거리나...

분명히 그냥 socket은 thread-safe하다고 봤었는데 - 이상하다 -

그래서 구글링해 본결과 MFC버그라는 이야기도 있어서... 혹시해어 Create메소드만 고쳤는데

이렇게 하니깐 주소를 잘못참조했네 어쩌구 에러가.... 

그냥 그래서 (하라는대로?) 클래스에서 CSocket 멤버를 빼버리고

죄다  socket, send, recv, close 함수로 대체해버렸음 -_-...

-> MFC에서 Thread안에서 돌아가는 프로그램에서는 CSocket클래스를 쓰지말자??
(라고는 해도 아무리 봐도 그냥 땜질용 처방 같다 ;;; 원래문제는 따로 있을듯)

ps :  이부분에 대해서 좀 아시는 분은 댓글을. 뭐 자원을 더 할당하라 그런이야기는 있던...
Trackback 0 Comment 4
  1. Favicon of https://lsm1987.tistory.com BlogIcon 에그 2010.10.04 23:36 신고 address edit & del reply

    MFC ㄷㄷㄷ... 난해한 소스의 압박에 버틸수가 없다! 여서 OpenCV도 C#으로 래핑된 라이브러리 쓰고있지 OTL
    객체지향하라고 MFC 만들어놨는데 정작 소켓 클래스를 못쓰는건 무슨경우인가!!

    • lowid 2010.10.09 13:24 address edit & del

      뭐.... 예외처리 걸어놓은 이유가 있긴하겠지
      근데 문제는 내가 알수 없다는거... 위치를 봐도 도저히
      이해할수 없는 위치에 걸려있으니......
      어쨌던 thread내부에선 csocket안쓰기로 했다우..
      ps; 객체지향? 그게 뭐져?? ㅋㅋ 어짜피 그런거 신경쓰기보다
      "지금 일단 어떻게든 잘 돌아가면 된다" 마인드라 쩝...
      객체지향/유지보수는 신경도 안씀...
      이러면 안되는줄은 아는데...
      옆에서 그렇게 짜니깐 나도 걍 그렇게 짜버림..... 귀찮.

  2. Favicon of https://zeper.tistory.com BlogIcon zeper 2010.11.22 21:59 신고 address edit & del reply

    mfc 수업을 듣기는 했는데 C#으로 모든과제를 하다보니
    mfc 이야기는 하나도 모르겠네요.
    저도 OpenCVeh C#으로 된걸가지구 썼었던지라..ㅋ

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2010.11.26 00:18 신고 address edit & del

      저도 mfc 잘 모릅니당
      그냥 c&p나 할뿐....
      - 뭐... 반대로 전 C#을 모르잖아여? 그러니깐 서로 그게 그거......

Trac + Git 연동를 해서 사용해보자.

미리 알림>
컴퓨터에는 python, sqlite, git가 먼저 설치되어 있고,
git도 해당 경로에 init 해둔 상태 (.git경로가 존재) 이다.

먼저 배포판 버전으로 trac을 설치한다. 나는 아치니깐

(설마 trac설치하려는 사람이 패키지 설치 하나 못하시진 않겠져? 배포판 마다 알아서 설치하십시다~)

yaourt -S trac

그다음 trac에서 git사용이 가능한 플러그인을 설치한다.

아치의 경우는 AUR에 있는 패키지가 문제가 있어서 작동안되므로

(이거때문에 몇시간 삽질한지 모른다! 다른 패키지를 사용하시는 분도 어느정도 참조하시길 ),


메녈 페이지에 있는데로  다음과 같이 패키지를 설치했다.
그다음 trac을 초기화하기 위해서 다음과 같은 명령어를 실행한다

생성할 경로는... "존재하지 않는 새로운" 경로이다. 나같은 경우 걍 귀차나서 프로젝트 경로밑에

trac을 생성하게 만들어 버렸다 귀찮아..

$ trac-admin /생성할/Trac/Path initenv

그럼 다음과 같은 메세지가 출력되면서 먼저 프로젝트 이름일 입력하라고 기다리고,

이후 DB어떤거 할건가 물어본다. 일단 기본적으로 다음과 같이 입력하면 어느정도 알아서 된다.

Trac은 프로젝트 데이타베이스를 초기화하고 준비하기 위해서
당신의 환경에 대해서 몇가지 질문을 할 것입니다.

 프로젝트 이름을 입력해 주십시오.
 이 이름은 페이지의 제목과 설명에서 사용될 것 입니다.

프로젝트 이름 [My Project]> minicube <-프로젝트명을 입력하고 Enter를 누른다.

 사용하고 있는 데이타베이스에 대한 연결 스트링을 지정하십시오.
 기본적으로, 지역 SQLite 데이타베이스가 저장소 디렉토리에 생성됩니다.
 이미 존재하는 PostgreSQL 데이타베이스를 사용하는 것도 가능합니다.
 (정확한 연결 스트링 구문에 대해서는 Trac 문서를 체크하십시오.)

데이타베이스 연결 스트링 [sqlite:db/trac.db]> <-이미 sqlite를 설치했으므로 그냥 Enter

프로젝트 생성 및 초기화
기본 위키 페이지 설치

..... (파이썬 파일 초기화, 기본 위키 설치)

---------------------------------------------------------------------
'minicube' 프로젝트 저장소 생성됨.

이하 생략

여기까지 나왔으면 일단 초기화 설정은 다 된것이다.

이제 git플러그인 설정을 시작해 보자.

trac/conf.d/trac.ini 파일을 열고 다음항목을 수정~!

[trac]
repository_dir = /Your/Git/Path    #ex> /home/lowid/work/src/.git/
repository_sync_per_request = (default)
repository_type = git
[git]
cached_repository = true
persistent_cache = true
shortrev_len = 6
git_bin = /usr/bin/git                   #ex> 절대경로로 적어야 제대로 되는것 같다   

[components] tracext.git.* = enabled

설정파일을 여기 올려두었으므로 편집하기 귀찮으신분은

trac/conf.d/trac.ini로 덮어쓰기하고 프로젝트 경로만 수정해서 사용하시면 되겠다.
(티스토리가 확장명을 변경하는것 같네요.)



이제 마지막으로 tracd를 설정해 보기루 하겠다

원래 아파치랑 연동하는 것이 정석인데....

뭐 어떤가 난 로컬에서 혼자 쓸거라서 그냥 tracd로 할려구 한다....

(아파치랑 연동하는것은 구글에서도 많으므로 따로 여기서 써야할 필요성도 못느끼겠고......)

일단 먼저 암호파일을 만들어야하는데....

1 htpassw를 사용한다. (생략)

2 htdigestd를 사용한다.  (아치의 경우는  AUR에 "apache-tools"라는 패키지를 설치하면 되긴한다.)
3 이도 저도 없다는 분은, 다음 파이썬 스크립트를 사용하세여.

$python trac-digest.py -u username -p passwd
예) python trac-digest.py -u lowid -p ab

이제 /etc/conf.d/tracd.conf 파일을 열자 볼거 별루 없다.

워낙 간단하기도 하고.... 주석도 친절하게 다 써져 있어서....

# configuration for trac standalone daemon
# see http://projects.edgewall.com/trac/wiki/TracStandalone
#

# PORT : port to be used by tracd ( option -p )
# 8080포트말고 다른 포트로 설정하시고 싶은분은 변경하시길
PORT=8080

# AUTH : file to use for authentication
# format :  project,digestfile,realm
# 앞서 작성한 패스워드파일의 경로를 꼭 맞게 적어주셔야 합니다.
# AUTH의 앞, 뒤는 "trac"이 들어가는지 꼭 확인해 주세요.
AUTH=trac,/home/lowid/work/trac/trac_login,trac

# PROJECT : list of project to serve, you can place more than one project.
# PROJECT="/path/to/project1 /path/to/project2"
# trac이 설치된 디렉토리를 정해야한다! 프로젝트경로(소스)가 아님을 유의하세요!
PROJECT="/home/lowid/work/trac"

그다음 시작데몬 리스트에 tracd를 올려놓고 재부팅을하거나, 데몬을 start하면 모든 설정과정이  끝.

이제 http://127.0.0.1:8080 으로 들어가서 프로젝트를 선택하면!

산듯한(?) 메인페이지가 뜨고, 타임라인(시간이력) 에 들어가면 git commit한것도 잘 보일것이다.

사용자 삽입 이미지

마지막 으로 관리자 사용자 계정에 관리자 권한을 부여하자

trac-admin TRAC_PATH permission add UserID TRAC_ADMIN

ex> trac-admin ~/work/trac permission add lowid TRAC_ADMIN

또, 관리자 모드에서 티켓을 삭제하고 싶다면, trac.ini에 다음 항목을 추가하면 된다
[components]
tracopt.ticket.deleter = enabled

ps:
문제가 발생하면 메녈페이지를 찬찬히 몇번 읽어보는것이 굉장한 도움이 되므로 한번씩 보도록 하자.

http://trac.edgewall.org/wiki/TracStandalone
http://trac-hacks.org/wiki/GitPlugin

ps2;
체인지 뷰 업데이트 할때 버그가 있다.
사용자 삽입 이미지
"View changes from" 항목에서 디폴트 값은 "2010년 9월 24일" 이런식으로 되어있는데,

저런식으로 데이터 포멧이 (YYYY년 MM월 DD일)쓰면 에러나므로

"2010-9-24" 이런 포멧으로 써야 정상적으로 업데이트가 잘 된다.

ps3;
git 커밋을 보면 이상하게 한글은 다 깨진다 우와아아앙 ㅠㅠ

ps4;
사실 이거 설정한내용은 별거아닌데 (메뉴얼 페이지에 다 있음)....
워낙 어문데서 삽질을 많이해서 포스팅을 할수밖에 없었다... 왠지 또 삽질할까봐서....씁..
특히 내가 삽질한 부분을 약간 보강

ps5;
로그인이 안되는것, 관리자 권한 설정 추가, 포스팅 수정 완료
Trackback 0 Comment 6
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2010.09.24 16:43 신고 address edit & del reply

    어후 이게 뭔가효? ㄷ ㄷ ㄷ ㄷ ㄷ
    굉장히 복잡한;;;;

    • lowid 2010.09.25 12:41 address edit & del

      알면서 모르는척하지 마시라는......ㅋ

  2. Favicon of https://lsm1987.tistory.com BlogIcon 에그 2010.09.24 23:26 신고 address edit & del reply

    Trac이 무슨 프로그램인가 해서 찾아보니 "오픈소스 웹 기반 프로젝트 관리 겸 버그 추적 툴" 이구려. TortoiseSVN보다 더 많은 기능을 지원해주는건가? ㄷㄷㄷ

    • lowid 2010.09.25 12:40 address edit & del

      아항.. 이게 윈도우용 svn클라이언트.. 같은거구낭...
      나도 거북이SVN 이 뭔지 몰라서 함 찾아봤다는....
      GIT는 svn쓰던 토발즈아저씨가 불편해서 만든 버전관리툴
      trac은...... 일정관리... 정도로 보면 될까....
      어떤게 더 편한진 내가 거북이svn을 안써봐서 모르겠지만...
      아무래도 git가 svn을 보완한것으로 볼수 있으니까, 더 좋지 않을까...... 라고 생각하네

  3. Favicon of https://ranoking.tistory.com BlogIcon RanoKing 2010.09.29 14:11 신고 address edit & del reply

    이런 굇수분을 보았나!
    한동안 안본사이에 더욱 진화를 하셨군요!
    그나저나 아치는 여전히 막가파인가보군요
    젠투는 요새 업뎃도 좀 뜸한거 같고.. 점 식상해져 가는군요

    • lowid 2010.10.01 00:34 address edit & del

      삽질이 뭐 어제오늘일도 아니자나여 뭘 ㅠ..
      젠투.. 그런거 쓰지말고 왠만하면 다시 아치로 넘어오시지 말입니다.~

prev 1 2 3 4 5 ··· 19 next