1.4. 간단한 메모 (팁)

  • Subversion log 내용을 잘못 수정하여 Commit 한 경우 Log 수정 하는 방법
    # svn propedit -r <revision번호> --revprop svn:log <working or repository pathname>
    
  • Ubuntu에서 콘솔 화면 해상도 변경
    1. "/etc/default/grub" 파일에서 하기와 같이 항목을 수정합니다.
      ...
      GRUB_CMDLINE_LINUX_DEFAULT="video=0x0305"
      ...
      GRUB_GFXMODE=1024x768
      GRUB_GFXPAYLOAD_LINUX=1024x768
      
    2. 다음과 같이 "update-grub"명령을 실행하여 적용합니다.
      # sudo update-grub
      
    3. 이제 재부팅하면 해상도가 적용된 터미널을 볼 수 있습니다.
      # sudo shutdown -r now
      
  • 장비에 ldd 명령어가 없는 경우 (LD_TRACE_LOADED_OBJECTS=1 환경변수 지정과 함께 실행명령을 실행하면 ldd 명령과 동일한 출력결과를 얻을 수 있습니다.)
    # LD_TRACE_LOADED_OBJECTS=1 <실행명령>
    
    # LD_TRACE_LOADED_OBJECTS=1 /usr/sbin/flook
            libdl.so.2 => /lib/libdl.so.2 (0x2abc3000)
            libc.so.6 => /lib/libc.so.6 (0x2acc6000)
            /lib32/ld.so.1 (0x2aaa8000)
    # _
    
  • PHP에서 HTTP header 중 "Last-Modified"을 응답하려면 (Cache되지 않는 페이지를 유지하려면)
    $last_modified = gmdate('D, d M Y H:i:s T');
    header("Last-Modified: $last_modified GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache"); // HTTP/1.0
    header("Vary: *");
    
  • PuTTY 설정 백업 및 복원 방법
    regedit 를 실행하여 "컴퓨터\HKEY_CURRENT_USER\Softeare\Simon Tatham\PuTTY\Session"을 내보내기로 저장하면 해당 저장한 .reg 파일이 백업설정파일이 됩니다. 복원은 가져오기하면 되겠죠.
  • 오래된 Ubuntu 버젼(예: Ubuntu 12.04) 에서 "sudo apt-get update" 실행시 일부 동기오류나는 경우 ("/var/lib/apt/lists/" 디렉토리 하위의 파일들을 지우고 다시 하면 해결됨)
    # sudo apt-get autoclean -y
    # sudo apt-get clean
    # sudo rm -rf /var/lib/apt/lists/*
    # sudo apt-get update
    
  • Ubuntu 에서 Network Interface가 2개 이상이고 둘다 DHCP를 할당하는 경우 Default Gateway를 특정 Interface 로 설정하는 방법 ("/etc/network/interfaces")
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    allow-hotplug eth0
    iface eth0 inet dhcp
    post-up route add default via 192.168.0.1 dev eth0
    
    # The sencondary network interface
    allow-hotplug eth1
    iface eth1 inet dhcp
    post-up route del default dev eth1
    
  • SSH daemon이 Client 의 연결을 검사하여 실제 연결한 동안 끊어지지 않도록 설정하는 예 ("/etc/ssh/sshd_config" 의 뒤에 다음항목을 추가 후 sshd 재시작)
    ClientAliveInterval 60
    ClientAliveCountMax 3
    
  • Linux의 Swap 을 최대한 안하도록 설정 ("/etc/sysctl.conf" 뒤에 다음 항목을 추가후 "sudo sysctl -p" 명령으로 적용)
    vm.swappiness = 97
    
  • Subversion 접속 방법 중에서 svn+ssh 의 경우 port번호는 기본값이 22이지만 이를 다른 포트로 우회 해야 하는 경우 URL에서 port 지정이 되지 않는데 이 경우 --config-option 을 통하여 변경할 수 있음. (마찬가지로 svnsync 등에서도 이 옵션을 사용할 수 있음.)
    svn+ssh://[<username>@]<address>/<path> --config-option="config:tunnels:ssh=ssh -p <port>"
    
  • Ubuntu 64-bit 에서 32-bit 프로그램을 실행하고자 할때 ia32-libs package를 설치하면 됨.
    sudo apr-get install ia32-libs
    


  • 원격지의 특정 압축파일을 내 LinuxPC에서 바로 풀고싶을때
    ssh <remotehost> "cat archive.tar.gz" | tar -xvz
    


  • sftp 를 통한 원격 파일시스템 mount
    • fuse의 sshfs이 필요
    • fstab에 다음과 같이 작성
      sshfs#<user>@<host>[:<path>] <mount entry> fuse <mount option> 0 0
      


  • Ubuntu에서 gcc는 어떻게 설치해야 하는지?
    sudo apt-get install build-essential
    


  • cURL library를 이용하여 https 접속을 처리할 때 다음과 같이 SSL CA를 요구하는데 부합하지 못할 경우
    • 다음과 같이 코드에 옵션을 추가하여 원인을 찾아본다.
      s_curl_code = curl_easy_setopt(s_curl, CURLOPT_VERBOSE, 1);
      
    • 다음과 같은 메세지와 흡사하다면
      * error setting certificate verify locations:
        CAfile: /usr/share/curl/curl-ca-bundle.crt
        CApath: none
      
      * Closing connection #0
      * Problem with the SSL CA cert (path? access rights?)
      


    • 해당 필요한 파일을 넣어주던가 다음과 같은 옵션을 코드에 추가하여 무시할 수 있다.
      s_curl_code = curl_easy_setopt(s_curl, CURLOPT_SSL_VERIFYHOST, 0);
      s_curl_code = curl_easy_setopt(s_curl, CURLOPT_SSL_VERIFYPEER, 0);
      


  • Eclipse에서 Subversion을 설치하려면?
  • CMake를 이용한 Project들의 Source 를 Cross compile하기 (인자들은 적절히 수정필요)
    tar -xvzf source.tar.gz
    
    cd source
    
    cmake \
        -DCMAKE_INSTALL_PREFIX:PATH="/usr" \
        -DCMAKE_SYSTEM_NAME=Linux \
        -DCMAKE_SYSTEM_VERSION=1 \
        -DCMAKE_C_COMPILER="$(CC)" \
        -DCMAKE_CXX_COMPILER="$(CXX)" \
        -DCMAKE_LINKER="$(LD)" \
        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
        -DCMAKE_INCLUDE_PATH="/usr/include" \
        -DCMAKE_LIBRARY_PATH="/usr/lib" \
        .
    
    make && make install
    


  • 간단한 Linux Kernel module 개발을 위한 Makefile template
    ###
    ### Copyright (C) MINZKN.COM
    ### All rights reserved.
    ### Author: JAEHYUK CHO <mailto:minzkn@minzkn.com>
    ###
    
    ifneq ($(KERNELRELEASE),)
    obj-m += template.o
    else
    KERNELDIR="/lib/modules/$(shell uname -r)/build"
    #KERNELDIR="/usr/src/linux"
    
    .PHONY: all modules %
    all: modules
    modules %:; @$(MAKE) --no-print-directory -C $(KERNELDIR) M="$(abspath .)" $(@)
    endif
    
    # End of makefile
    


  • 파일의 내용중 특정 패턴치환
    #find . -type f -exec sed -i -e "s/\(.*\)A\(.*\)/B/" {} \;
    find . -type f -exec sed -i -e "s/A/B/g" {} \;
    


  • 삼바(Sambe) 캐쉬(Cache) 삭제 방법 (출처: [http]http://serverfault.com/questions/476086/samba-winbind-user-resolution[])
    Stop the Winbind and Samba services:
        service winbind stop
        service smb stop
    
    Clear the Samba Net cache:
        net cache flush
    
    Delete the Winbind caches:
        rm –f /var/lib/samba/*.tdb
        rm –f /var/lib/samba/group_mapping.ldb
    
    Start the Samba and then Winbind services - Note: The order is important
        service smb start
        service winbind start
    



/*
[ FrontPage | PrintView | RawView | RSS ]

Copyright ⓒ MINZKN.COM
All Rights Reserved.

MINZKN
*/