IT한 것/unix 21

gradle ssh plugin execute 시 오류를 무시하는 방법

너무너무너무 간단해서 쉬운 해결책이긴 하지만, 글로 남겨본다. make랑 비슷할 줄알고 @을 명령어 앞에 붙여봤지만, 소용이 없었고 더 간단했다. execute "SOME COMMANDS", ignoreError:true 뒤에 저 옵션만 붙어주면 된다. 이정도 알아봤으면, 아래의 공식 링크에 방문해서, 다른 옵션은 뭐가 있나 알아보는 것도 좋겠다. 참고 gradle-ssh-plugin.github.io/docs/#_execute_a_command

IT한 것/unix 2021.04.14

gradle ssh execute가 종료되지 않을 때

gradle ssh plugin은 아주 많은 기능을 가진 플러그인이다. 단순 ssh client라고 생각했는데, gradle-ssh-plugin.github.io/docs/ Gradle SSH Plugin Document Groovy SSH is an automation tool which provides SSH facilities such as command execution or file transfer. It is provided as the executable JAR gssh.jar and the library groovy-ssh-x.y.z.jar. gradle-ssh-plugin.github.io 참고 링크를 따라가면.. 아주 장난 아니다 어쨋든 이것을 이용하여 간단하게 개발 모듈을 deploy..

IT한 것/unix 2021.04.14

AIX: ar command

AIX에서 연관되어있는 모듈 관계를 보면 shared object인 .so파일 보다는 .a 파일이 많이 나온다.과연 왜 이럴까? 라는 물음에서 남길만한 것을 찾았다. 아래의 내용은 man ar 명령으로 본 것이다. The ar command maintains the indexed libraries used by the linkage editor. The ar command combines one or more named files into a single archive file written in ar archive format. When the ar command creates a library, it creates headers in a transportable format; when it creat..

IT한 것/unix 2012.10.22

HP-UX 이제 여기에도 apt-get, yum, pkgutil 같은 녀석이!

HP-UX의 오픈소스 패키지를 구하기 위해서는the Porting And Archive Centre for HP-UX 이 사이트가 갑이다. 그 덕에 얼마나 편하게 필요한 소프트웨어를 구하는지! 허나, 사실상 rpm과 다름 없이 각각의 패키지가 분리되어 있어서, 한큐에 설치하기가 참 귀찮은 편이다. 오늘도 여전히 노가다로 설치중이였는데, 뜬금없이 why not use depothelper? 라는 링크가 보이더라. depothelper라는 패키지가 원격 저장소에 있는 패키지를 가져와 설치해주는 역할을 한다. /usr/local/bin/depothelper subversion 요걸로 단박에 설치해준다 ㅠㅠ감사!!

IT한 것/unix 2012.08.27

HP-UX nslookup이 hostname를 못찾을 때.

그동안 설정이 완료된 서버만 만져보다가 새로운 서버를 만져보게 되었다. ip 설정 후, depot 패키지를 받아 설치하려는데,무식하게 hostname을 찾기 못한다는 오류가 발생한다./etc/hosts 파일 내에 hostname이 ip로 설정되어 있는 것을 확인해 보았음에도 말이다. 그리하여 nslookup hostname을 시도하였더니 진짜로 못찾는 문제가 발생하였다.당최 이게 뭐지했는데. /etc/nsswitch.conf 라는 설정이 존재하였다.이 녀석의 목적은 네임 서버 탐색 방법을 설정하는 것으로 보여진다. 설정되었던 기본 값은 hosts: dns [NOTFOUND=return] nis [NOTFOUND=return] files 보다시피 dns로 찾아바고 없으면 반환, nis로 찾아보고 없으면 반..

IT한 것/unix 2012.08.27

링킹 뭘로 할까 gcc/cc, ld ??

최근 특이한 일을 겪었다. solaris x86 플랫폼에서 빌드 할 일이 있었는데, c 소스를 gcc로 컴파일하고 ld로 링킹을 하고 있었다. 이 과정까지는 문제가 없었는데, 실행파일을 만들고 실행을하면.모든 로직을 수행 후, segmentation fault가 발생한다.※심지어는 hello world만 찍어도 그렇다. 이미 소스코드 레벨의 문제가 아니라는 것이 확인되었으니, 링커를 변경해봤다.gcc/cc로 링킹을 해보니 정상적으로 작동한다. 응? 뭐지? 뭔가 그 동안 잘못 알고 있는게 아닌가 싶어서 oracle에 접속.그리고 발견Direct Invocation When you invoke the link-editor directly, you have to supply every object file a..

IT한 것/unix 2012.05.02

passing argument ... with different width due to prototype

gcc를 이용하여 컴파일을 하다보면, 자주 보게되는 경고문이다. 먼저 선언해두었던 함수의 원형과는 일치하지않는 전달인자를 넘겼을 경우에 발생한다. 물론 -Wconversion 옵션을 설정하지 않으면 발생하지 않겠지만, 꼼꼼하게 하려는 생각에 사용한다. 그런데 참 이해하기 힘든 상황이 발생했었다. lovian$ cat a.c int func (unsigned char aa) { return 1; } int main () { func ((unsigned char)0); return 0; } lovian$ gcc a.c -Wconversion a.c: In function ‘main’: a.c:7: warning: passing argument 1 of ‘func’ with different width due..

IT한 것/unix 2011.09.23

HP-UX 11.11 에서 라이브러리 링킹 실패

분명히 라이브러리가 있음에도 링킹이 실패하는 경우가 있었다. 때문에 권한, 이름 등등 많은 것을 수정해보았지만 실패했다. 한동안 포기하고 있다가, 또 다시 이슈가 되면서 보게되었다. 무적의 tusc를 설치했다. 추적하니 라이브러리 서칭을 stat -> open 하는 방식을 사용한다. stat("/data/lovian/a/libco.sl", 0x7f81208c) .................................................................... ERR#2 ENOENT stat("/data/lovian/b/libco.sl", 0x7f81208c) .................................................................... ..

IT한 것/unix 2010.12.17

ESQL에서 오류상황시 SQLCODE가 나오지 않는 상황

INFORMIX의 ESQL을 이용하여 프리컴파일, 컴파일, 링킹을 수행한다. 물론 컴파일이나 링킹은 직접 해주어도 상관없다. 내가 겪은 상황은, ESQL을 이용한 경우이다. 그리고 바로 실행파일을 만든 것이 아니고, DB관련 기능은 모두 공유 라이브러리에 모아두고 그것을 호출하도록 구성시켰다. 그러나 이게 왠일? PREPARED STATEMENT를 만들고, CURSOR를 만들어 MULTI ROW에 대해서 FETCH를 시도했는데, 무한 루프에 빠지는 것이였다. 소스코드의 FETCH 는 SQLCODE 값이 100 즉 NOT FOUND가 나오는 것을 감지해야만 정상적인 로직을 타도록 구현되어 있다. 이상해서 디버깅을 해보았는데, SQLCODE값은 계속 0이였고, SQLSTATE는 비어있는 문자열이였다. 온갖삽..

IT한 것/unix 2009.11.13

AIX 이해가 안돼는 undefined symbol 오류 발생시.

분명히 symbol이 존재하는 데도 링킹이 실패하는 경우가 발생했다. 혹시 이름에 오탈자가 있었나? 그것도 아니다. 진실은 기본에 있었다. C and C++ Application Development on AIX 2nd edition 문서를 참고하면 If you are creating a shared object and want all symbols to be exported, then you do not need to use an export file. You can use the -bexpall linker option, which will automatically export all global symbols (except imported symbols, unreferenced symbols def..

IT한 것/unix 2009.07.03