Ubuntu 환경에서 커널버전 및 Ubuntu 버전을 확인하는 법에 대해 알아보자.


커널버전 알아보기

    $ uname -a Linux leechwin-linux 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ cat /proc/version Linux version 4.4.0-59-generic (buildd@lgw01-11) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017

Ubuntu 버전확인하기

    $ cat /etc/issue Ubuntu 16.04.1 LTS \n \l $ cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS" NAME="Ubuntu" VERSION="16.04.1 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.1 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial

참고로 /etc/issue 파일은 내부에서 콘솔 로그인시 출력해주는 메시지이다.

Posted by leechwin

댓글을 달아 주세요

Ubuntu 16.04이상에서 다운받은 deb 패키지 파일이 더블클릭으로 설치가 잘 안되는 경우가 있다.

이때 다음과 같은 방법으로 해결이 가능하다.


1.GDebi 패키지 설치

    • $ sudo apt-get install gdebi

    • open GDebi and click File -> Open and navigate to the downloaded DEB file.


2. Command line에서 다음과 같이 수행

    • $ sudo dpkg -i downloaded.deb $ sudo apt-get -f install


Reference: http://askubuntu.com/questions/760638/problem-with-deb-packages-on-ubuntu-16-04

Posted by leechwin

댓글을 달아 주세요

Jenkins 의 버전을 업데이트 하고 싶을때 수동으로 war 파일만 다운받아 교체하고 싶은경우 다음과 같이 진행한다.

  • 구동중인 Jenkins 중지
    • $ service jenkins stop

  • war 파일을 다운받아 다음 경로에 복사
    • $ sudo mv jenkins.war /usr/share/jenkins

  • Jenkins 재가동
    • $ service jenkins start

이후 업데이트된 버전의 Jenkins 가 반영되어 가동된다.

Posted by leechwin

댓글을 달아 주세요

Ubuntu 에서 SSD 카드 사용하려고 할때 가끔 Unable to mount.. 로 시작하는 에러가 발생하면서 SD 카드를 인식 못하는 경우가 있다.

원인은 SSD카드가 Windows 환경에서 포멧되어 사용중인 파일시스템을 리눅스에서 인지를 못하는 문제이다.

이 문제를 해결하려면 리눅스에 해당 파일 시스템을 인식 할 수 있는 모듈을 다음과 같이 설치하면 해결이 된다.

  • sudo apt-get install exfat-fuse

위의 모듈이 성공적으로 설치되면 SD 카드가 정상적으로 인식된다.

Reference: http://askubuntu.com/questions/664765/unable-to-mount-128gb-micro-sdxc-storage-card



Posted by leechwin

댓글을 달아 주세요

Jenkins Plugin 개발시에 빌드 패키징을 위한 maven 설치 방법


Ubuntu

  • Java가 설치되어 있고 JAVA_HOME 환경변수 설정이 되어 있어야 한다.
    •  export JAVA_HOME=/path/your/jdk
       export PATH=$JAVA_HOME/bin:$PATH

  • apt-get 을 통하여 설치
    • sudo apt-get install maven2
  • ~/.m2/settings.xml 파일을 수정하거나 없다면 새로생성 (윈도우는 %USERPROFILE%\.m2\settings.xml)
    • <settings>

        <pluginGroups>

          <pluginGroup>org.jenkins-ci.tools</pluginGroup>

        </pluginGroups>


        <profiles>

          <!-- Give access to Jenkins plugins -->

          <profile>

            <id>jenkins</id>

            <activation>

              <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->

            </activation>

            <repositories>

              <repository>

                <id>repo.jenkins-ci.org</id>

                <url>http://repo.jenkins-ci.org/public/</url>

              </repository>

            </repositories>

            <pluginRepositories>

              <pluginRepository>

                <id>repo.jenkins-ci.org</id>

                <url>http://repo.jenkins-ci.org/public/</url>

              </pluginRepository>

            </pluginRepositories>

          </profile>

        </profiles>

        <mirrors>

          <mirror>

            <id>repo.jenkins-ci.org</id>

            <url>http://repo.jenkins-ci.org/public/</url>

            <mirrorOf>m.g.o-public</mirrorOf>

          </mirror>

        </mirrors>

        <!-- 프록시 설정 -->

        <proxies>

          <proxy>

            <id>optional2</id>

            <active>true</active>

            <protocol>https</protocol>

            <host>[Proxy URL]</host>

            <port>[Port]</port> 

          </proxy>

        </proxies>

      </settings> 

  • 다음 명령을 통하여 필요한 패키지를 설치
    • $ mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create
  • Jenkins Plugin 개발 경로에서 패키징 실행
    • $ mvn package


Reference: https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

Posted by leechwin

댓글을 달아 주세요

Ubuntu 를 새로 설치하고 apt-get 등의 작업을 할때 Bad header line 이라는 에러와 함께 패키지 정보를 가져오지 못하고 에러가 발생하는 경우가 있다.

이때에는 apt-get clean 이후 apt-get update 등을 수행해도 제대로 동작하지 않는다.

이를 해결하기 위해서는 다음과 같이 수행한다.

  • Update Manger > Settings... > Ubuntu Software > Download from > Main Server
  • 아래의 명령으로 source list를 삭제한 후 새로 update를 수행
    • sudo rm -rf /var/lib/apt/lists/* && sudo apt-get update

위의 순서대로 수행하면 apt-get update 가 에러없이 수행된다.


만약 사내등에서 Proxy 를 쓰고 있다면 다음과 같이 proxy 설정을 해주어야 한다.

  • /etc/apt/apt.conf 파일에 해당 프록시 주소를 설정한다.
    • Acquire::http::Proxy "http://111.111.111.111:8080/"; Acquire::https::Proxy "https://111.111.111.111:8080/";

  • 이후 apt-get clean 과 apt-get update 를 수행한다.


Reference: http://askubuntu.com/questions/162782/apt-get-update-bad-header-line-on-all-udpates

Posted by leechwin

댓글을 달아 주세요

Bash Strict Mode

OS/Linux 2016.01.03 20:09

Bash Shell Script 작성시 다음과 같이 시작하면 안전한 스크립트를 작성 할 수 있다.

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
  • set -e 옵션
    • 첫번째 에러에서 스크립트를 취소(0이 아닌 상태로 종료하는명령어)하는 옵션
    • 스크립트 에러시 정상종료상태인 0을 리턴받아 다음 스크립트가 진행된다면 마지막 스크립트까지 진행되는 경우 원하지 않는 결과가 수행될 수 있다.
  • set -u 옵션
    • 정의 안 된 변수 사용시 에러 메세지 출력후 강제 종료하는 옵션
  • set -o pipefail 옵션
    • pipeline으로 실행된 경우 에러발생시 에러코드 및 메시지를 전달하는 옵션

Reference


Posted by leechwin

댓글을 달아 주세요

리눅스에서 sh 파일을 실행할때 가끔 다음과 같은 에러가 발생하는 경우가 있다.

  • /bin/bash^M: bad interpreter: No such file or directory

VI로 확인을 해보아도 스크립트내용은 이상이 없는데, 다음 명령어로 해당 sh 파일을 열어보도록 하자.

  • vi -b <file>

확인을 해보면 개행마다 ^M이라는 이상한 문자가 붙어있는 것을 볼 수 있다.

원인으로는 이 파일이 아마도 윈도우즈에서 생성되어서 개행마다 carriage return character 인 "^M"이 붙어서 리눅스에서 실행시 에러를 낸다.

참고로 윈도우즈의 개행은 CR LF 이고, 리눅스에서는 LF 이다.

  • CR (carriage return)
  • LF (line feed)
위의 해결책은 vi -b 로 진입하여 CR에 해당하는 "^M" 문자를 모두 삭제하거나, 리눅스에서 새로 파일을 만들어 작성하여 실행하면 제대로 동작한다.

vi 에서 수정시에는 다음을 참고한다.
  • :%s/^M$//
  • 참고로 ^M 문자는 Ctrl + V, Ctrl + M을 차례로 누르면 된다.



Posted by leechwin

댓글을 달아 주세요

Ubuntu 내 Dash home에서 약어로 프로그램을 찾아 실행하는 등의 작업을 할때, 프로그램을 삭제하였는데 메뉴에 남아있거나, 보이기 싫은 경우가 있다.



이럴때에는 다음 디렉토리에서 해당하는 프로그램을 찾아 삭제하면 Dash home에서 보이지 않게 된다.

  • /usr/share/applications
  • /usr/local/share/applications
  • /.local/share/applications
  • /.local/share/desktop-directories


'OS > Linux' 카테고리의 다른 글

Bash Strict Mode  (0) 2016.01.03
[Ubuntu] sh 파일 실행시 "/bin/bash^M" 에러가 발생하는 경우  (0) 2015.12.29
[Ubuntu] Dash home에서 불필요한 프로그램 shortcut 삭제  (0) 2015.12.24
[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
Posted by leechwin

댓글을 달아 주세요

[Shell] Bash shell 팁

OS/Linux 2015.12.20 18:39

Bash Shell에서 편리한 팁들

  • Tab : argument 완성
  • Ctrl + R : command history 에서 검색
  • Ctrl + W : 마지막 단어 삭제
  • Ctrl + U : 라인 전체 삭제
  • Ctrl + A : 라인 시작점으로 이동
  • Ctrl + E : 라인 끝지점으로 이동
  • "cd -" : 이전 디렉토리로 이동


'OS > Linux' 카테고리의 다른 글

[Ubuntu] sh 파일 실행시 "/bin/bash^M" 에러가 발생하는 경우  (0) 2015.12.29
[Ubuntu] Dash home에서 불필요한 프로그램 shortcut 삭제  (0) 2015.12.24
[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
UNIX TOOLBOX  (2) 2015.08.26
Posted by leechwin

댓글을 달아 주세요