Install groc for Ubuntu

Posted in 개인/ㄴLinux by

우분투에서 소스코드 문서화 도구인 groc를 설치해보자


# 필요 : Node.js, Pygments


1. Node.js 설치

  A. http://www.nodejs.org/ 에서 다운로드 후 압축해제

  B. $ ./configure

  C. $ make

  D. $ sudo make install


2. Pygments 설치

  $ sudo apt-get install python-pygments


3. groc 설치

  $ npm install -g groc


참고사이트 : 

http://mobicon.tistory.com/231

http://blog.outsider.ne.kr/907

리눅스 하드 추가하기

Posted in 개인/ㄴLinux by

# 새로 추가된 하드가 sdb라고 가정


1. 새로운 하드가 올바르게 추가 되었는지 확인

  $ sudo fdisk -l


2. 파티션 할당하기

  $ sudo fdisk /dev/sdb

  Command (m for help) : n <새 파티션 추가>

  Partition number (1-4): 1 <1번 파티션>

  First sylinder, List cylinder : ENTER를 두번 눌러준다 <둘다 DEFAULT로 설정>

  Command (m for help) : w <파티션 테이블 저장>


3. 파티션 포맷

  $ sudo mkfs.ext4 /dev/sdb1


4. 자동 마운트 설정

 UUID 확인 : $ - ls -l /dev/disk/by-uuid/

  $ sudo vi /etc/fstab

  입력 : UUID=[위 하드의 UUID입력] [마운트 할 폴더] ext4 defaults 0 0


5. REBOOT


6. 새로추가된 하드에 일반계정 쓰기권한을 추가

  $ sudo chown -R [계정] [마운트 한 폴더]

  $ chmod +w [마운트 한 폴더]

Android JellyBean 4.2 Source Build

Posted in 개인/ㄴAndroid by

안드로이드 젤리빈 4.2 소스 빌드 컴파일 


소스 검색 및 빌드에 필요한 소프트웨어의 설치
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils python-software-properties xsltproc libx11-dev:i386 gcc-4.5 g++-4.5 gcc-4.5-multilib g++-4.5-multilib


libGL.so 심볼릭 링크 만들기
Emulator 용 빌드를 할 경우 필요합니다.
$ sudo ln -s libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so
$ sudo ln -s mesa/libGL.so /usr/lib/i386-linux-gnu/libGL.so

JDK6 설치
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer (oracle-java7-installer)

USB 설정
# Android 단말과 PC를 연결하기 위한 설정
$ sudo vi /etc/udev/rules.d/51-android.rules

# 51-android.rules에 아래 내용을 기입
SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

# udev를 다시 실행한다
sudo /etc/init.d/udev restart

repo 설정
$ mkdir ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

#repo 경로설정
$ vi ~/.bashrc
export PATH=$PATH:~/bin < - 기입
$ source ~/.bashrc

AOSP에서 Android 소스 코드 다운로드
# 작업 폴더 만들기
$ mkdir ~/jellyBean
$ export ANDROID_ROOT=~/jellyBean

# android-4.2.1_r1의 소스를 다운로드
$ cd $ANDROID_ROOT
$ repo init -u https://android.googlesource.com/platform/manifest android-4.2.1_r1
$ repo sync -j4

Android 소스 코드 빌드
$ cd $ANDROID_ROOT 
$ source build/envsetup.sh 
$ lunch full-eng
$ make -j4

안드로이드 오디오 시스템 구성 요소

Posted in 개인/ㄴAndroid by


1. 어플리케이션 프레임워크 계층 : 자바 어플리케이션들이 오디오 시스템을 사용하기 위한 자바 API들이 존재하는 곳

구성요소

설  명 

 AudioTrack(Java)

오디오 출력을 담당하는 자바 클래스이다. AudioTrack(Java)은 파일이나 네트워크로부터 PCM데이터를 추출한 후, 네이티브 계층의 AudioTrack(C++)으로 PCM데이터를 전달하여 소리를 출력한다. 

 AudioRecord(Java)

오디오 입력 장치로부터 PCM데이터를 받아오기 위한 자바 클래스이다. AudioRecord(Java)는 네이티브 계층의 AudioRecord(C++)를 통해 PCM 데이터를 획득한 후 압축 파일로 저장하거나 네트워크를 통해서 소리를 다른 곳으로 전달할 수 있다. 

 AudioManager(Java)

오디오 시스템에서 볼륨을 조정하거나 오디오 출력 장치를 결정하는 등의 오디오 시스템 제어를 위한 자바 클래스이다. 


2. JNI 계층 : 어플리케이션 프레임워크 계층의 자바 클래스들이 C++ 클래스를 사용하기 위한 인터페이스를 정의한 곳

구성요소

설  명 

android_media_AudioTrack

네이티브 계층의 AudioTrack(C++) 클래스를 사용하기 위한 JNI정의

android_media_AudioRecord

네이티브 계층의 AudioRecord(C++) 클래스를 사용하기 위한 JNI정의

android_media_AudioSystem

네이티브 계층의 AudioSystem(C++) 클래스를 사용하기 위한 JNI정의


3. 네이티브 계층 : 오디오 시스템의 핵심 동작을 수행하는 계층 / 크게 오디오 출력, 오디오 입력, 오디오 제어 동작을 수행


3-1. 네이티브 프록시 : 어플리케이션이 시스템 서비스에 접근하기 위한 방법을 정의

구성요소

설  명 

AudioTrack(C++)

오디오 출력을 담당하는 서비스 클라이언트의 클래스이다. AudioTrack(C++)는  IAudioTrack 서비스 프록시를 통해 AudioFlinger 서비스에게 오디오 출력을 요청한다.

 AudioRecord(C++)

오디오 입력을 담당하는 서비스 클라이언트의 클래스이다. AudioFlinger 서비스는 하드웨어로부터  PCM데이터를 받아 RecordTrack을 통해 애플리케이션으로 전달한다. AudioRecord(C++)는 IAudioRecord 서비스 프록시를 통해 AudioFlinger 서비스에게 오디오 입력을 요청한다.

 AudioSystem(C++)

오디오 제어 요청을 담당하는 서비스 클라이언트의 클래스이다. 오디오 라우팅, 오디오 볼륨 조정 등 제어에 관한 동작을 AudioPolicyService에게 요청한다.


3-2. 서비스 프록시 : 오디오 시스템의 네이티브 프록시가 시스템 서비스를 사용하기 위한 인터페이스

구성요소

설  명 

 IAudioFlinger

서비스 클라이언트가 서비스 서버의 AudioFlinger 클래스에 접근하기 위해 사용한다.

IAudioTrack

트랙 핸들 리모트 서비스를 사용하기 위한 서비스 프록시이다. 서비스 서버의 TrackHandle클래스에 접근하기 위해 사용한다.

IAudioRecord

레코드 트랙 핸들 리모트 서비스를 사용하기 위한 서비스 프록시이다. 서비스 서버의 RecordHandle 클래스에 접근하기 위해 사용한다.

IAudioPolicyService

서비스 서버의 AudioPolicyService 클래스에 접근하기 위해 사용한다.


3-3. 시스템 서비스 : 서비스 서버에서 오디오 시스템의 동작을 실제로 수행하는 서비스들

구성요소

설  명 

AudioFlinger

오디오 시스템의 중추적 역활을 하는 시스템 서비스이다. 크게 오디오 출력, 입력 역활을 가지고 왔으며, 오디오 HAL을 통해 오디오 하드웨어에 접근이 가능하다.

AudioPolicyService

네이티브 프록시로부터 오디오 시스템의 제어 요청(볼륨 조정, 라우팅, 포커싱 등)을 받아서 처리하는 서비스이다. 제조사 고유의 오디오 시스템 정책을 추가할 수도 있다. 그리고 실제 정책을 하드웨어 혹은 현재의 동작에 적용하도록 AudioFlinger 서비스에게 요청한다.


3-4. 트랙 핸들 리모트 서비스 : 서비스 클라이언트가 서비스 프록시를 통해 접근하는 서비스

구성요소

설  명 

TrackHandle

트랙에 접근하기 위한 트랙 핸들이다. AudioTrack(C++)은 TrackHandle 클래스를 통해 Track 클래스의 함수를 접근한다.

Track

AudioTrack(C++)이 서비스 서버로 전달한 PCM데이터를 관리하는 역활을 한다. AudioTrack(C++) 클래스를 통해 생성 가능하다.

AudioMixer

트랙들이 가진 PCM 데이터에 대한 리샘플링 작업과 믹싱작업을 한다.

MixerThread

믹서 쓰레드는 트랙들의 PCM 데이터를 얻어온 후, 오디오 믹서에게 전달한다. 또한 오디오 믹서에 의해 믹싱된 PCM 데이터를 오디오 HAL에게 전달하여 소리로 출력한다.


3-5. 레코드 핸들 리모트 서비스 : 서비스 클라이언트가 서비스 프록시를 통해 접근하는 서비스

구성요소

설  명 

RecordHandle

AudioRecord(C++)에서 트랙에 접근하기 위한 트랙 핸들이다. AudioRecord(C++)는 RecordHandle 클래스를 통해 RecordTrack 클래스의 함수에 접근한다.

RecordTrack

오디오 하드웨어가 전달한 PCM 데이터를 AudioRecord(C++)로 전달하는 역활을 한다. 서비스 서버에서 오디오 입력을 담당하는 클래스이다. AudioRecord(C++) 클래스를 통해 생성 가능하며, 단 하나의 레코드 트랙만 존재한다.

AudioResampler

오디오 입력시 PCM 데이터에 대한 리샘플링을 수행한다.

RecordThread

RecordThread는 오디오 HAL에서 PCM 데이터를 얻어 온 후 AudioResampler에게 전달한다. 오디오 입력 리셈플러에서 리샘플된 PCM 데이터는 서비스 클라이언트로 전달된다.


4. 오디오 HAL 계층 : 제조사마다 다른 오디오 하드웨어를 안드로이드 플랫폼이 동일한 인터페이스를 통해 사용할 수 있도록 해줌


5. 리눅스 커널 및 하드웨어 계층 : 오디오 입출력을 위한 오디오 하드웨어 및 이를 구동하기 위한 디바이스 드라이버가 존재하는 계층



참조 : 안드로이드 미디어 프레임워크 - 4장 안드로이드 오디오 시스템

Odroid X-2 SDcard에 U-boot쓰기

Posted in 개인/ㄴAndroid by

# 출처 : http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidx&kind=52&bid=1329



# toolchain 다운로드기
http://www.mentor.com/ 에 가입(가입해야 툴체인 다운로드 가능)
로그인후 https://sourcery.mentor.com/GNUToolchain/release1294?lite=arm 에서 IA32 GNU/Linux TAR 또는 IA32 GNU/Linux Installer 다운로드

 

# toolchain 설치
하드커널에서 본 어떤 페이지에서 진저브레드 이후는 64bit OS에서 컴파일 해야 된다는걸 얼핏봐서, 우분투 64bit 를 설치했었습니다. 64bit 환경에서는 32bit 라이브러리가 없어 툴체인이 작동을 제대로 안하거나 설치가 안되니 32bit 라이브러리를 설치해줘야 합니다. OS를 32bit 로 설치하신경우는 상관 없을듯합니다.

-IA32 GNU/Linux Installer 를 이용해 설치하는경우 아래와 같은 에러 메세지가 뜹니다.
-----------------------------------------------------------------------------------------
Error: Missing 32-bit libraries on 64-bit Linux host

Your 64-bit Linux host is missing the 32-bit libraries
required to install and use Sourcery G++.

Please follow this Knowledge Base entry to install the
required 32-bit libraries:
https://support.codesourcery.com/GNUToolchain/kbentry62

Once you have installed the 32-bit libraries, please restart
the installer.
-----------------------------------------------------------------------------------------

-IA32 GNU/Linux TAR 를 이용해 압축을 풀어 설치한 경우는 arm-none-eabi-gcc 파일을 실행하면 그런 파일을 찾을수 없다는 에러가 뜹니다. 분명 경로지정이 제대로 되있는데도 불구하고 실행하면 파일을 찾을수 없다는 에러만 계속 뜸



# 32bit 라이브러리 설치(우분투가 64bit인 경우만)
sudo apt-get install ia32-libs

 

# toolchain 설치 & path 추가
- IA32 GNU/Linux Installer 로 설치하는경우
sudo chmod a+x arm-2010q1-188-arm-none-eabi.bin
sudo dpkg-reconfigure -plow dash
./arm-2010q1-188-arm-none-eabi.bin
GUI 설치화면이 뜹니다.

- IA32 GNU/Linux TAR 경우는 원하는곳에 압출을 풀기만 하면됩니다.

- path 추가(경로는 자신이 툴체인 설치한곳의 bin 디렉토리를 지정)
cat >> ~/.bashrc <<EOF
export ARCH=arm 
export CROSS_COMPILE=arm-none-eabi-
PATH=$PATH:/home/odroid/CodeSourcery/Sourcery_G++_Lite/bin;
EOF

- path 갱신(갱신을 해줘야 바로 path가 적용됨)
source ~/.bashrc

 

# u-boot 빌드 전 p4412_s_fwbl1.bin , p4412_s_tzsw.bin 백업(uboot/sd_fuse/ 에 있음, make distclean 하면 사라짐)

 

# 빌드
make distclean
make smdk4412_config
make

 

# bl2 생성
./mkbl2 u-boot.bin bl2.bin 14336

 

# 부트로더 SD메모리에 기록(기록 하기 전에 아까 백업한 p4412_s_fwbl1.bin , p4412_s_tzsw.bin 두개 파일을 sd_fuse 디렉토리로 다시 복사해주세요.), /dev/sdb 는 자신의 SD리더에 맞는 장치파일을 적어주시면됩니다.
cd sd_fuse
./sd_fusing_4412.sh /dev/sdb
-------------------------SD에 기록하는 모습--------------------
Exynos4412 BL1 fusing
[sudo] password for odroid: 
32+0 records in
32+0 records out
16384 bytes (16 kB) copied, 0.0992948 s, 165 kB/s
16+0 records in
16+0 records out
8192 bytes (8.2 kB) copied, 0.0929718 s, 88.1 kB/s
Exynos4412 BL2 fusing
28+0 records in
28+0 records out
14336 bytes (14 kB) copied, 0.127858 s, 112 kB/s
Exynos4412 bootloader fusing
541+1 records in
541+1 records out
277128 bytes (277 kB) copied, 1.68265 s, 165 kB/s
Exynos4412 tzsw fusing
320+0 records in
320+0 records out
163840 bytes (164 kB) copied, 1.04169 s, 157 kB/s
U-boot image is fused successfully.
Eject SD card and insert it again.
----------------------------------------------------------------
다른 장치들은 bl1 기록하고 바로 그다음에 u-boot를 기록하고 끝나는데 특이하게 Exynos4412용 스크립트는

1.부트섹터 초기화 
2.p4412_s_fwbl1.bin -> bl1
3.bl2.bin -> bl2
4.u-boot.bin -> u-boot
5.p4412_s_tzsw.bin -> tzsw(일종의 키파일인거 같습니다)

순으로 SD메모리에 기록합니다.

sd_fusing_4412.sh 라는 스크립트를 통해 SD메모리에 기록할때 p4412_s_fwbl1.bin , p4412_s_tzsw.bin 는 sd_fuze 디렉토리에 위치하고 u-boot.bin과 bl2.bin은 그 상위디렉토리에 파일이 있는걸로 경로를 참조합니다. bl2.bin과 u-boot.bin을 sd_fuze 디렉토리로 복사안하셔도됩니다.

 

# 우분투 64bit 환경에서 위와 같이 빌드하고 u-boot만 SD메모리에 기록한 상태로 minicom에서 정상적으로 u-boot 작동하는거 확인했습니다.

Ubuntu 12.04 마이크 설정

Posted in 개인/ㄴLinux by

Microphone not working on ubuntu (tested on 12.04)

If on UBUNTU microphone is not working; on skype or on gtalk: follow these simple steps:

1. Open terminal
2. Hit the following command, you may need sudo
        gksudo gedit /etc/modprobe.d/alsa-
base.conf 
3. Add following lines at the end of the open file:
        alias snd-card-0 snd-hda-intel
        options snd-hda-intel model=auto
4. Hit the following command on terminal, which will open Alsamixer levels:
        alsamixer
5. Press f4 to see 'capture' Alsamixer levels
6. Maximize all levels
7. Use following command to save it:
        sudo alsactl -f /var/lib/alsa/asound.state store
8. Restart.

Use recorder to see the device is working or not, :) 
If any problem post comment here.

우분투 커널 컴파일과 교체

Posted in 개인/ㄴLinux by

www.kernel.org에서 교체할 커널 버전 다운로드


/usr/src/에 복사 및 압축해제


패키지설치

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

sudo apt-get install build-essential bin86 kernel-package wget libncurses5 libncurses5-dev


$cd /usr/src/linux-3.0(version)

make menuconfig
make
make modules_install install
update-initramfs -c -k 3.0(컴파일한 버전)


Grub Customizer 설치 (/etc/default/grub 수정이 안될 경우)

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer


$ grub-customizer

getneral-settings에서 show menu체크


Android build setting

Posted in 개인/ㄴAndroid by

## 패키지 업데이트 & 업그레이드 ##

$sudo apt-get update

$sudo apt-get upgrade


## Oracle JDK 6 설치 ##

http://eldora.tistory.com/97


## 빌드하는데 필요한 패키지 파일들 설치 ##

$sudo apt-get install git-core gnupg flex bison gperf build-essential

$sudo apt-get install zip curl zlib1g-dev libc6-dev lib32ncurses5-dev

$sudo apt-get install ia32-libs x11proto-core-dev libx11-dev xsltproc

$sudo apt-get install lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev

$sudo apt-get install g++-multilib mingw32 tofrodos python-markdown libxml2-utils


## Libx11-dev:i386 설치 ##

$sudo apt-get install libx11-dev:i386 –yes


## gcc4.4, g++ 4.4 설치 ##

sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib

echo "export CC=gcc-4.4 CXX=g++-4.4" >> ~/.bashrc

source ~/.bashrc

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 50


## U-boot-tools 설치 ##

sudo apt-get install u-boot-tools


## Sourcery G++ Lite 2010q1-188 for ARM GNU/Linux 설치 ##

아래 URL에서 IA32 GNU/Linux Installer 다운로드

https://sourcery.mentor.com/sgpp/lite/arm/portal/release1294


cd ~/다운로드

sudo chmod a+x arm-2010q1-188-arm-none-eabi.bin

sudo dpkg-reconfigure -plow dash


dash 환경설정 - 아니오 - Enter

./arm-2010q1-188-arm-none-eabi.bin

계속 다음을 누르면서 설치


## CrossCompile 환경설정 ##

vi ~/.bashrc

맨아래 코드3줄 입력

export CROSS_COMPILE=arm-none-eabi-

export ARCH=arm

export PATH=$PATH:/home/본인계정/CodeSourcery/Sourcery_G++_Lite/bin;

source ~/.bashrc


참고 : http://source.android.com

GCC 다운그레이드 - How to install older gcc version

Posted in 개인/ㄴLinux by

특정 gcc 버전으로 gcc를 다운그레이드 하고 싶을 때 apt-get install로써 내가 원하는 gcc버전이 안나올 경우가 있다.

이럴때는 http://packages.ubuntu.com/ 에 모든 패키지 파일이 있으므로 검색을 통하여 특정 버전의 gcc를 설치한다.

이 때 주의할 것은 내가 원하는 gcc 버전의 deb 패키지 파일만 받지 말고 검색된 패키지의 depends 패키지들을 모두 설치해준 후

마지막에 gcc의 deb패키지를 설치해줘야한다.

나는 12.04에서 gcc 4.2를 설치하기 위해 cpp-4.2, gcc-4.2-base설치 후 gcc-4.2를 설치해주었다.

설치 후에 

$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.2 50

Or

$sudo update-alternatives --config gcc 로 내가 원하는 gcc버전으로 링크를 연결해준다


How to use APT

Posted in 개인/ㄴLinux by

APT 쓰는 법

APT(Advanced Packaging Tool)는 원래 데비안 GNU/리눅스에서 소프트웨어 설치 또는 제거 작업(윈도우즈의 '프로그램 추가/제거'를 생각하면 됩니다)을 할 때 쓰는 소프트웨어이며 데비안 GNU/리눅스에서 갈라져 나온 우분투도 이 APT로 소프트웨어 설치 또는 제거 작업을 합니다. 글이 깨져서 나온다면 export LANG=en_US.UTF-8라고 입력한 다음 다시 써 보세요.

패키지 설치하거나 제거하기

우분투에서는 '패키지(package)'라는 단위로 소프트웨어를 관리합니다. 여러분이 원하는 소프트웨어는 하나의 패키지에 담겨 있는 여러 소프트웨어들 가운데 하나일 수도 있고, 반대로 여러분이 원하는 소프트웨어 하나가 여러 개의 패키지로 분리되어 있을 수도 있습니다. 이제 apt로 원하는 소프트웨어를 찾고, 설치하거나 제거하는 방법을 알아봅시다. 여기서는 한글 입력 소프트웨어인 '나비'를 예로 들겠습니다. 우분투에서 나비의 패키지 이름은 nabi입니다. 참고로 패키지를 설치하거나 제거하려면 root의 권한이 있어야 되기 때문에 root 암호를 기억하고 있어야 됩니다.

  • 패키지 찾기
apt-cache search <패키지 이름>
apt-cache search nabi
  • 패키지 설치하기
apt-get install <패키지 이름>
apt-get install nabi
  • 패키지 제거하기
apt-get remove <패키지 이름>
apt-get remove nabi
  • 패키지 다시 설치하기(주로 소프트웨어가 잘못되어 있을 때 쓰입니다)
apt-get reinstall <패키지 이름>
apt-get reinstall nabi

:!:참고) apt-get install 명령어로 받은 deb 파일의 저장 위치

/var/cache/apt/archive/
위 폴더에 .deb 패키지 파일로 저장됩니다.
  • /var/cache/apt/archive/ 비우기
apt-get clean

패키지 관리

apt는 최신 패키지를 다운로드 하여 설치하게 되는데 upgrade 하기전에 update 해서 source.list 를 갱신

  • 패키지 정보보기
apt-cache show <패키지명>
(예: nabi) apt-cache show nabi
  • 소스리스트 업데이트
apt-get update
  • 설치된 패키지들 업데이트
apt-get upgrade
  • 의존성 검사 수행하면서 업그레이드
apt-get -s dist-upgrade
  • CD-ROM 목록 추가
apt-cdrom add
  • 삭제하는 패키지의 설정화일들가지 모두 삭제시
apt-get --purge remove <패키지명>
  • dselect에서 선택한 패키지의 설치 및 삭제
apt-get dselect-upgrade

dpkg를 이용한 프로그램 설치와 제거

  • deb파일 설치
dpkg -i nabi_0.15-2_i386.deb
  • 제거하기
dpkg -P <패키지명>
(예: nabi) dpkg -P nabi
  • 설치 deb파일들의 리스트
dpkg -l
  • 설치된 패키지에 포함된 파일들 보기
dpkg -L nabi
  • deb파일 패키지에 포함된 파일들 보기
dpkg -c nabi_0.15-2_i386.deb
  • deb파일의 정보보기
dpkg -I nabi_0.15-2_i386.deb
  • 파일이 포함된 패키지 이름 알아내기
dpkg -S /usr/bin/nabi
  • 설치된 패키지를 볼때
dpkg -l 패키지명


출처 - 우분투 한국 사용자 모임

http://ubuntu.or.kr/wiki/doku.php?id=%EB%AA%A9%EC%B0%A8:apt_%EC%82%AC%EC%9A%A9%EB%B2%95