Linux/Ubuntu2013. 1. 15. 09:18

$ sudo apt-get install rpm2cpio 
$ rpm2cpio [rpm 파일 이름] | cpio -idv
[링크 : http://bs-secretroom.blogspot.kr/2012/10/rpm.html

2009/11/04 - [Linux] - 설치하지 않은 rpm에 포함된 파일의 내용 보기

Posted by 구차니
Linux/Ubuntu2012. 11. 23. 10:06
업그레이드 해볼까 하고 했더니 SSH를 통해서는 위험하다고 겁주네 -_-

$ do-release-upgrade
Checking for a new ubuntu release
Done Upgrade tool signature
Done Upgrade tool
Done downloading
authenticate 'precise.tar.gz' against 'precise.tar.gz.gpg'
extracting 'precise.tar.gz'

캐시 읽는 중

패키지 관리자 확인 중

SSH를 통해 계속 진행하시겠습니까?

현재 세션은 SSH에서 돌아가고 있습니다. SSH를
이용한 세션에서 업그레이드를 하는 것은 추천하지
않습니다. 업그레이드에 실패할 경우 복구하기가
힘들어 집니다.

진행하시면 '1022' 포트로 추가 SSH데몬을 시작할
것입니다.
계속 진행하시겠습니까?

계속 [yN]
 



Posted by 구차니
Linux/Ubuntu2012. 10. 15. 17:20
통상 서버
ssh
samba system-config-samba
apache2 mysql-client-5.5 php5 php5-mysql php5-gd

개발서버
nfs-kernel-server
build-essential 

관리용
lynx
mc
vim
htop
dstat
gsmartcontrol

사용자 
chromium-browser
vlc

귀찮을때 
$ sudo apt-get install  ssh samba system-config-samba apache2 mysql-client-5.5 php5 php5-mysql php5-gd nfs-kernel-server lynx mc vim chromium-browser vlc  htop dstat gsmartcontrol 

어딘가 저장해놨던거 같은데 사라져서 다시 저장 -_-
Ubuntu 12.04 LTS / 2012년 10월 15일 기준 
Posted by 구차니
Linux/Ubuntu2012. 7. 9. 20:10
screen 명령을 다시 써봤더니
putty에서 ctrl - a,d 문제 없이 되고 터미널도 다시 실행되서 패닉중 -ㅁ-

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:56 ?        00:00:01 /sbin/init
root      2196   698  0 19:59 ?        00:00:00 sshd: minimonk [priv]
minimonk  2316  2196  0 19:59 ?        00:00:00 sshd: minimonk@pts/0
minimonk  2317  2316  0 19:59 pts/0    00:00:01 -bash
minimonk  2419     1  0 20:01 ?        00:00:00 SCREEN
minimonk  2420  2419  0 20:01 pts/2    00:00:00 /bin/bash
minimonk  2474  2420  0 20:01 pts/2    00:00:00 rtorrent

root      2942   698  0 20:13 ?        00:00:00 sshd: minimonk [priv]
minimonk  3068  2942  0 20:13 ?        00:00:00 sshd: minimonk@pts/4
minimonk  3069  3068  3 20:13 pts/4    00:00:01 -bash
minimonk  3225  3069  0 20:14 pts/4    00:00:00 screen -R -D 

아무튼, PID 0번은 /sbin/init 이고
SCREEN은 어떻게 한건진 모르겠지만(!) PPID가 1이다.
그나저나 screen으로 실행했는데 왜 SCREEN 이 된거지...?

sshd: [priv]
   sshd : @pts/0
      bash

SCREEN
    bash
        rtorrent

아무튼 이런식으로 구성이 되고,
첫번째 ssh 가상 터미널은 pts/0 에서 실행중이고
screen은 pts/2에서 실행중이다.
두번째 ssh 가상 터미널은 pts/4 에서 실행이 되었고
두번째 ssh 에서 screen으로 끌어와도 rtorrent는 pts/2에 여전히 남아있다.

2012/07/07 - [Linux] - ssh 를 통해 프로그램 실행후 로그아웃 해도 종료되지 않게 하기

Posted by 구차니
Linux/Ubuntu2012. 6. 9. 19:34
/apps/gnome_settings_daemon/plugins 에 media-keys가 존재하지 않으면 생성해주면 된다.
생성시에는 아래와 같이 참/거짓(boolean)형으로 값은 거짓으로 생성해주면 바로 서비스가 중지된다.



근데... 내가 저 설정편집기를 어떻게 해서 설치했더라?

[링크 : http://forums.fedoraforum.org/showthread.php?t=230568]
Posted by 구차니
Linux/Ubuntu2012. 6. 8. 11:35
패치를 하거나, perl을 통해서 한글 변환하는 것도 있지만
unzip 도움말을 보니 -O 라는 옵션이 존재하길래 해보니 문제없이 잘 풀린다.
단, -l을 통해 목록 보는건 여전히 깨지는 문제가 있다.

$ unzip --help
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
  Default action is to extract files in list, except those in xlist, to exdir;
  file[.zip] may be a wildcard.  -Z => ZipInfo mode ("unzip -Z" for usage).

  -p  extract files to pipe, no messages     -l  list files (short format)
  -f  freshen existing files, create none    -t  test compressed archive data
  -u  update files, create if necessary      -z  display archive comment only
  -v  list verbosely/show version info       -T  timestamp archive to latest
  -x  exclude files that follow (in xlist)   -d  extract files into exdir
modifiers:
  -n  never overwrite existing files         -q  quiet mode (-qq => quieter)
  -o  overwrite files WITHOUT prompting      -a  auto-convert any text files
  -j  junk paths (do not make directories)   -aa treat ALL files as text
  -U  use escapes for all non-ASCII Unicode  -UU ignore any Unicode fields
  -C  match filenames case-insensitively     -L  make (some) names lowercase
  -X  restore UID/GID info                   -V  retain VMS version numbers
  -K  keep setuid/setgid/tacky permissions   -M  pipe through "more" pager
  -O CHARSET  specify a character encoding for DOS, Windows and OS/2 archives
  -I CHARSET  specify a character encoding for UNIX and other archives

See "unzip -hh" or unzip.txt for more help.  Examples:
  unzip data1 -x joe   => extract all files except joe from zipfile data1.zip
  unzip -p foo | more  => send contents of foo.zip via pipe into program more
  unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer 

 $  sudo unzip -O cp949 -d directory/ filename.zip  

Posted by 구차니
Linux/Ubuntu2012. 6. 7. 22:19
원인불명(?)으로 외장 하드 연결시 웹서버에서 보이지 않는 문제가 있어 확인해봤더니
rwx------ 로 mount 되는 현상발견..

sudo chmod 777 해도 변경이 안되고 이래저래 테스트 해보진 못했지만,
udev 에서 자동인식해서 automount 하면서 umask 식으로 0077 이 되어있는 식의 내용 발견.
테스트는 조만간 해봐야겠다.

[링크 :  http://askubuntu.com/.../17540/how-do-i-set-executable-permissions-on-a-removable-drive/17550]


---
2012.6.8 추가
일단 ubuntu 12.04 LTS desktop 에서는 적용되지 않음 -_- 
Posted by 구차니
Linux/Ubuntu2012. 6. 7. 07:56
rutorrent는 rtorrent의 webUI GUI frontend이다.
간단하게 토런토 프로그램을 웹서버를 통해 원격에서 볼수있게 해주는 역활을 한다.

패키지 설치 및 삭제
$ sudo apt-get remove libxmlrpc-c*
$ sudo apt-get install subversion gcc apache2 curl libcurl4-openssl-dev automake autoconf texinfo libapache2-mod-scgi build-essential libtool openssl libsigc++-2.0-dev libncurses-dev libcppunit-dev php5

xmlrpc-c 다운로드 및 설치(svn)
$ svn co http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
$ cd xmlrpc-c
$ ./configure
$ make
$ sudo make install

왜 하는진 모르겠지만 libxmlrpc 설치
$ sudo apt-get install libxmlrpc-c3-dev

아파치 모듈 삽입
$ sudo a2enmod scgi

아파치 환경설정 추가
$sudo vi /etc/apache2/httpd.conf
SCGIMount /RPC2 127.0.0.1:5000

아파치 재시작
$ sudo service apache2 restart

rtorrent 및 php5-cgi 설치
$ sudo apt-get install rtorrent php5-cgi

데몬을 위한 screen 프로그램 설치
$ sudo apt-get install screen
 
[링크 : http://s990we.com/wordpress/2010/10/install-xmlrpc-c-libtorrent-rtorrent-and-rutorrent-from-svn-2/ ] 

rtorrent에서 세션용으로 저장할 디렉토리를 생성해주고
$ cd ~
$ mkdir .rtsession

그리고 rtorrent 환경설정 파일에 각종 정보를 수정해 준다.
$ cat .rtorrent.rc 
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. "0" for unlimited.
#download_rate = 0
#upload_rate = 0

# Default directory to save the downloaded torrents.
directory = /home/minimonk/다운로드

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/minimonk/.rtsession
scgi_port = localhost:5000

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
#port_range = 6890-6999

# Start opening ports at a random position within the port range.
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
# dht = auto

# UDP port to use for DHT. 
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#
# peer_exchange = yes

#
# Do not modify the following parameters unless you know what you're doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10 

rutorrent를 설치해서 하는데 영 먼가 안되고 배를 째는데
[22.03.2011 17:42:45] WebUI started.
[22.03.2011 17:42:45] JS error: [http://cinemaverite.net/rutorrent/ : 1] Uncaught SyntaxError: Unexpected token <
[22.03.2011 17:42:45] Bad response from server: (200 [parsererror,getuisettings]) <?php require_once( &#39;util.php&#39; ); $s = @file_get_contents(getSettingsPath()."/uisettings.json"); if($s==false) $s = &#39;{}&#39;; if(!ini_get("zlib.output_compression")) header("Content-Length: ".strlen($s)); header("Content-Type: application/json; charset=UTF-8"); echo $s; ?>

[링크 : http://forums.rutorrent.org/index.php?topic=701.0

혹시나 해서 json이 문제인가 해서 php5-json을 해보니 php5-common으로 이미 설치 된 녀석이고
php5-cgi를 설치하고 나니 문제가 없이 되는 듯한 느낌..

그리고 그냥 실행하면 접속할 수 없다고 포트번호 확인하라는데
콘솔하나 열고 그냥 rtorrent 실행하면 문제없이 작동한다(보기에는 그렇지만)
서비스용 데몬 스크립트를 일단 똭~
사용자 계정만 수정해주고 rtorrent 환경파일만 수정해주면 될 듯?
(아직까지 데몬 스크립트는 실행이 안됨 ㅠ.ㅠ)
#!/bin/bash
#############
###<Notes>###
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using absolute paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with 
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
###</Notes>###
##############

#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file 
# (so that it is saved with upgrades, saved in your home directory,
# or whatever reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename 
# for the one you used. note the space after the ".".
# . /etc/rtorrent.init.conf


#Do not put a space on either side of the equal signs e.g.
# user = user 
# will not work
# system user to run as (can only use one)
user="minimonk"

# system user to run as # not implemented, see d_start for beginning implementation
# group=$(id -ng "$user")

# the full path to the filename where you store your rtorrent configuration
# must keep parentheses around the entire statement, quotations around each config file
#config=("$(su -c 'echo $HOME' $user)/.rtorrent.rc")
# Examples:
config=("/home/minimonk/.rtorrent.rc")
# config=("/home/user/.rtorrent.rc" "/mnt/some/drive/.rtorrent2.rc")
# config=("/home/user/.rtorrent.rc"
# "/mnt/some/drive/.rtorrent2.rc"
# "/mnt/another/drive/.rtorrent3.rc")

# set of options to run with each instance, separated by a new line
# must keep parentheses around the entire statement
#if no special options, specify with: ""
options=("")
# Examples:
# starts one instance, sourcing both .rtorrent.rc and .rtorrent2.rc
# options=("-o import=~/.rtorrent2.rc")
# starts two instances, ignoring .rtorrent.rc for both, and using
# .rtorrent2.rc for the first, and .rtorrent3.rc for the second
# we do not check for valid options
# options=("-n -o import=~/.rtorrent2.rc" "-n -o import=~/rtorrent3.rc")

# default directory for screen, needs to be an absolute path
base=$(su -c 'echo $HOME' $user)

# name of screen session
srnname="rtorrent"

# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
###END CONFIGURATION###
#######################

PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME

checkcnfg() {
  exists=0
  for i in `echo "$PATH" | tr ':' '\n'` ; do
    if [ -f $i/$NAME ] ; then
      exists=1
      break
    fi
  done
  if [ $exists -eq 0 ] ; then
    echo "cannot find $NAME binary in PATH: $PATH" | tee -a "$logfile" >&2
    exit 3
  fi
  for (( i=0 ; i < ${#config[@]} ;  i++ )) ; do
    if ! [ -r "${config[i]}" ] ; then
        echo "cannot find readable config ${config[i]}. check that it is there and permissions are appropriate"  | tee -a "$logfile" >&2
        exit 3
    fi
    session=$(getsession "${config[i]}")
    if ! [ -d "${session}" ] ; then
        echo "cannot find readable session directory ${session} from config ${config[i]}. check permissions" | tee -a "$logfile" >&2
        exit 3
    fi
  done
}

d_start() {
  [ -d "${base}" ] && cd "${base}"
  stty stop undef && stty start undef
  #su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
  su -c "screen -S "${srnname}" -X screen rtorrent ${options} " ${user} | tee -a "$logfile" >&2
  # this works for the screen command, but starting rtorrent below adopts screen session gid
  # even if it is not the screen session we started (e.g. running under an undesirable gid
  #su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
  for (( i=0 ; i < ${#options[@]} ; i++ )) ;  do
    sleep 3
    #su -c "screen -S "${srnname}" -X screen rtorrent ${options[i]} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
    su -c "screen -S "${srnname}" -X screen rtorrent ${options[i]} " ${user} | tee -a "$logfile" >&2
  done
}

d_stop() {
  for (( i=0 ; i < ${#config[@]} ; i++ )) ; do
    session=$(getsession "${config[i]}")
    if ! [ -s ${session}/rtorrent.lock ] ; then
        return
    fi
    pid=$(cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g")
    # make sure the pid doesn't belong to another process
    if ps -A | grep -sq ${pid}.*rtorrent ; then
        kill -s INT ${pid}
    fi
  done
}

getsession() { 
    session=$(cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" )
    #session=${session/#~/`getent passwd ${user}|cut -d: -f6`}
    echo $session
}

checkcnfg

case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

[링크 : http://ubuntuforums.org/showthread.php?t=859543]  

[링크 : http://code.google.com/p/rutorrent/wiki/Installation ]
[링크 : http://code.google.com/p/rutorrent/wiki/WebSERVER ]
[링크 : http://code.google.com/p/rutorrent/wiki/Config ] 
[링크 : http://www.howtoforge.com/installing-cherokee-with-php5-and-mysql-support-on-ubuntu-9.04 ] cherokee 
Posted by 구차니
Linux/Ubuntu2012. 6. 2. 23:15
이것저것 뒤져봐도 안되서 별짓을 다하다 우연히 발견하게 되었는데,
/var/log/Xorg.0/log가 핵심적인 힌트를 주게 될 줄이야..

다른 설정들을 해보아도(grub의 nomodeset 이라던가) 안되는데
에러메시지를 보다보니 지금 연결된 모니터는 CRT-0 인데,
모니터를 연결하지 않고 켠다면 연결될 모니터를 알 수 없기 때문에 xwindow의 시작이 멈추게 된다.
약간의 편법(?) 이지만 만약 모니터를 CRT-0 로 인식을 시키게 되면
구형 모니터이기에 해상도 정보라던가 이런걸 돌려받지 못할수도 있어서
modes에 설정된 값으로 해상도를 설정하고 확인하지 않고 부팅을 진행하게 해주는 것으로 추측된다.

---
modes는 해주지 않아도 부팅에 문제가 없다
test 플랫폼은 리플룩 ion-330
---

$ cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 295.33  (buildd@zirconium)  Fri Mar 30 13:38:49 UTC 2012

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Budzetron ANALOG"
    HorizSync       30.0 - 80.0
    VertRefresh     50.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "ION"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "1280x1024_60 +0+0"
    Option         "ConnectedMonitor" "CRT-0"
    Option         "UseDisplayDevice" "CRT-0"
    SubSection     "Display"
        Depth       24
Modes       "1280x1024"
    EndSubSection
EndSection


Posted by 구차니
Linux/Ubuntu2012. 6. 2. 21:55
so(shared object) 파일을 찾을수 없을때 발생하는 녀석으로 해결책은 두가지가 존재한다.

1. 사용자 별로 설정
$ vi ~/.bashrc
export LD_LIBRARY_PATH=[so 파일경로]
$ source ~/.bashrc  

2. 전체 시스템 설정
$ sudo vi /etc/ld.so.conf/user.conf
[so 파일경로]
$ sudo ldconfig   


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

rutorrent on ubuntu 12.04 LTS  (0) 2012.06.07
ubuntu 12.10 에서 모니터 없이 부팅시키기  (0) 2012.06.02
cuda 4.2 linux  (0) 2012.06.02
grub loader 날리기  (0) 2012.04.29
ubuntu 12.04 LTS released  (0) 2012.04.28
Posted by 구차니