자유게시판

예전에 리눅스를 몇번 시도하였으나 설치 후 바로 지운경험이 있습니다.
윈도우7의 지원 종료로 다시 리눅스를 고민하다. 국내os가 있음을 알게되었고 하모니카os도 알게 되었습니다.
설치 후 대만족 중입니다.

그러나 프린터 드라이버 설치 중 난관을 만났습니다.

 

0. 제 리눅스 버전은

  - 릴리즈 Linux Mint 17.3 Rosa 32비트

  - 커널 Linux 3.19.0-32-generic i686

  - MATE 1.12.0

 

0. 제 프린터는

  - 캐논 MF638cwz

 

0. 캐논에서 제공하는 리눅스버전 드라이버를 다운 받았습니다. 압축을 풀고 열어보니 폴더와 파일이 있네요.

폴더.jpg

 

0. install 이 있습니다. 가볍게 실행합니다. 그리곤 암호문이 나왔습니다. 어찌해야 하나요? 도와주세요..

 

1. 터미널에서 설치해야 하는건가요? 패키지관리자에서 설치하는건가요?

2. 제가 설치한 리눅스는 설치파일 확장자명이 어떤걸 써야 하는건가요?

3. 그리고 이런경우 전 어떻게 설치해야 하나요?

 

#!/bin/bash

##############################################################################
##
##  Canon Laser Printer Driver for Linux
##  Copyright CANON INC. 2015
##
##  This program is free software; you can redistribute it and/or modify
##  it under the terms of the GNU General Public License as published by
##  the Free Software Foundation; either version 2 of the License, or
##  (at your option) any later version.
##
##  This program is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
##  GNU General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this program; if not, write to the Free Software
##  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
##
##############################################################################


#-------------------------------------------------#
# install package list define
#-------------------------------------------------#
INSTALL_PACKAGE_RPM_32="
pangox-compat
beecrypt
beecrypt-devel
libglade2"

INSTALL_PACKAGE_RPM_64="
pangox-compat
libxml2
libxml2.i686
glibc glibc.i686
libstdc++
libstdc++.i686
libjpeg-turbo
libjpeg-turbo.i686
beecrypt.i686
beecrypt-devel.i686
libglade2"

INSTALL_PACKAGE_DEB_32="
libglade2-0
libjpeg62
libbeecrypt7
libbeecrypt-dev"

INSTALL_PACKAGE_DEB_64="
libglade2-0
libstdc++6:i386
libxml2:i386
libjpeg62:i386
libbeecrypt7:i386
libbeecrypt-dev:i386"

INSTALL_PACKAGE_DEB_64_IA32="
ia32-libs
libglade2-0
libjpeg62:i386
libbeecrypt7:i386
libbeecrypt-dev:i386"


#-------------------------------------------------#
# install message
#-------------------------------------------------#
INST_ERR_01_01="The current user is "
INST_ERR_01_02="Change user to root, and then perform installation again."

INST_COM_01_01="#----------------------------------------------------#"

INST_MSG_01_01="This installer is recommended for Fedora or Ubuntu distributions that are currently supported as of the release of this installer."
INST_MSG_01_04=""
INST_MSG_01_05="If this installer is run under earlier or later distributions, the installation of additional system libraries may be necessary after driver installation is complete."
INST_MSG_01_06="Do you want to continue with installation? (y/n) "

INST_MSG_02_01="Some system libraries could not be installed."
INST_MSG_02_02="Refer to the online manual for more information."
INST_MSG_02_03="Do you want to continue with installation? (y/n) "


#-------------------------------------------------#
# etc. define
#-------------------------------------------------#
ERROR_CHECK=0
MACHINE_TYPE=""
PACKAGE_TYPE=""
RELEASE_DIR=""
DRIVER_PACKAGE=""
INSTALL_PACKAGE=""
INSTALL_CMD=""
INSTALL_OPT=""
INSTALL_PACKAGE_CMD=""

COLOR_K='\033[1;30m'
COLOR_R='\033[1;31m'
COLOR_G='\033[1;32m'
COLOR_Y='\033[1;33m'
COLOR_B=''
COLOR_M='\033[1;35m'
COLOR_C='\033[1;36m'
COLOR_OFF='\033[m'


#-------------------------------------------------#
# common function
#-------------------------------------------------#
C_output_log()
{
    echo -e -n $COLOR_B
    echo -e $INST_COM_01_01
    echo -e "# $1"
    echo -e $INST_COM_01_01
    echo -e -n $COLOR_OFF
}


C_output_message()
{
    echo -e -n $COLOR_B
    echo -e "$1"
    echo -e -n $COLOR_OFF
}


C_output_error_message()
{
    echo -e -n $COLOR_R
    echo -e "$1"
    echo -e -n $COLOR_OFF
}


C_check_distribution()
{
    C_output_message "$INST_MSG_01_01"
    C_output_message "$INST_MSG_01_04"
    C_output_message "$INST_MSG_01_05"
    read -p "$INST_MSG_01_06" ans
    if [ "$ans" != "y" -a "$ans" != "Y" ]; then
        exit 1
    fi
    echo
}
   

C_check_directory()
{
    echo "${0}" | grep '/' >/dev/null  2>&1
    if [ "${?}" -eq 0 ]; then
        shell_dir="${0%/*}"
        cd "${shell_dir}"
    fi
}


C_init_cups()
{
    C_output_log "cups $1"

    if [ -f /etc/init.d/cups ]
    then
        CMD="/etc/init.d/cups $1"
        echo $CMD
        $CMD
    elif [ -f /etc/init.d/cupsys ]
    then
        CMD="/etc/init.d/cupsys $1"
        echo $CMD
        $CMD
    else
        CMD="service cups $1"
        echo $CMD
        $CMD
    fi
    echo
}


C_install_package()
{
    case $PACKAGE_TYPE in
    'deb')
        C_output_log "apt-get update"
        apt-get update
        echo
        ;;
    'rpm')
        C_output_log "$INSTALL_PACKAGE_CMD upgrade"
        for upgrade_pkg in $INSTALL_PACKAGE
        do
            echo "$upgrade_pkg"
            $INSTALL_PACKAGE_CMD -y upgrade $upgrade_pkg
            echo
        done
        ;;
    esac

    C_output_log "$INSTALL_PACKAGE_CMD install"

    $INSTALL_PACKAGE_CMD -y install $INSTALL_PACKAGE

    echo
}


C_install_package_check()
{
    C_output_log "Install Package Check"

    for inst_pkg in $INSTALL_PACKAGE
    do
        if which rpm > /dev/null 2>&1;
        then
            echo $inst_pkg | grep '\.'  > /dev/null 2>&1
            if [ $? -eq 0 ]; then
                LIB_NAME=`echo $inst_pkg | cut -d '.' -f1`
                ARCH=`echo $inst_pkg | cut -d '.' -f2`
                rpm -qa | grep -i $LIB_NAME | grep -i $ARCH > /dev/null 2>&1
            else
                rpm -qa | grep -i $inst_pkg > /dev/null 2>&1
            fi
        else
            echo $inst_pkg | grep ":" > /dev/null 2>&1
            if [ $? -eq 0 ]; then
                LIB_NAME=`echo $inst_pkg | cut -d ':' -f1`
                ARCH=`echo $inst_pkg | cut -d ':' -f2`
                dpkg -l | grep -i $LIB_NAME | grep -i $ARCH > /dev/null 2>&1
            else
                dpkg -l | grep -i $inst_pkg > /dev/null 2>&1
            fi
        fi

        if [ $? -eq 0 ]; then
            C_output_message " OK: $inst_pkg"
        else
            C_output_error_message   " NG: $inst_pkg"
            ERROR_CHECK=1
        fi
    done

    echo
   
    if [ $ERROR_CHECK -eq 1 ]; then
        C_output_message "$INST_MSG_02_01"
        C_output_message "$INST_MSG_02_02"
        read -p "$INST_MSG_02_03" ans
        if [ "$ans" != "y" -a "$ans" != "Y" ]; then
            exit 1
        fi
        echo
    fi
}


C_install_printer_driver()
{
    C_output_log "Install Printer Driver ($INSTALL_CMD $INSTALL_OPT)"

    unset DRIVER_PACKAGE
    DRIVER_PACKAGE=`find . -name "*$MACHINE_TYPE.$PACKAGE_TYPE"  | grep -i common`
    $INSTALL_CMD $INSTALL_OPT $DRIVER_PACKAGE

    unset DRIVER_PACKAGE
    DRIVER_PACKAGE=`find . -name "*$MACHINE_TYPE.$PACKAGE_TYPE" | grep -v common`
    $INSTALL_CMD $INSTALL_OPT $DRIVER_PACKAGE
    echo
}


#-------------------------------------------------#
# deb function
#-------------------------------------------------#
check_install_ia32()
{
    #-------------------------------------
    # Ubuntu only
    #-------------------------------------
    grep -i -e ubuntu /etc/issue > /dev/null 2>&1
    if [ $? -ne 0 ]; then
        return 0
    fi

    if [ ! -f /etc/lsb-release ]; then
        return 0
    fi

    VER=`grep -i release /etc/lsb-release | sed -e 's/[^0-9]//g'`
    if [ $VER -le 1304 ]; then
        INSTALL_PACKAGE=$INSTALL_PACKAGE_DEB_64_IA32
    fi
}


#-------------------------------------------------#
# start install.sh
#-------------------------------------------------#
main()
{
    #---------------
    # check root
    #---------------
    if test `id -un` != "root"; then
        C_output_error_message "$INST_ERR_01_01`id -un`."
        C_output_error_message "$INST_ERR_01_02"
        exit 1
    fi
   
    #---------------------
    # check directory
    #---------------------
    C_check_directory
   
    #---------------------
    # check distribution
    #---------------------
    C_check_distribution
   
    #------------------------
    # get distribution data
    #------------------------
    case `uname` in
    'SunOS')
        EXE_PATH='/opt/sfw/cups/sbin'
        ;;
    'HP-UX')
        EXE_PATH='/usr/sbin:/usr/bin'
        ;;
    'AIX')
        EXE_PATH='/usr/sbin:/usr/bin'
        ;;
    'Linux')
        EXE_PATH='/usr/sbin:/usr/bin'
        ;;
    esac
   
    export PATH=$EXE_PATH:$PATH
   
    if which rpm > /dev/null 2>&1;
    then
        PACKAGE_TYPE="rpm"
        INSTALL_CMD="rpm"
        INSTALL_OPT="-Uvh"
        if which yum > /dev/null 2>&1;
        then
            INSTALL_PACKAGE_CMD="yum"
        else
            INSTALL_PACKAGE_CMD="dnf"
        fi

        case `uname -m` in      
        'i386'|'i686')      
            MACHINE_TYPE="i386"      
            INSTALL_PACKAGE=$INSTALL_PACKAGE_RPM_32
            ;;      
        'x86_64')      
            MACHINE_TYPE="x86_64"      
            INSTALL_PACKAGE=$INSTALL_PACKAGE_RPM_64
            ;;      
        esac
    else
        PACKAGE_TYPE="deb"
        INSTALL_CMD="dpkg"
        INSTALL_OPT="-i --force-overwrite"
        INSTALL_PACKAGE_CMD="apt-get"
   
        case `uname -m` in      
        'i386'|'i686')      
            MACHINE_TYPE="i386"      
            INSTALL_PACKAGE=$INSTALL_PACKAGE_DEB_32
            ;;      
        'x86_64')      
            MACHINE_TYPE="amd64"      
            INSTALL_PACKAGE=$INSTALL_PACKAGE_DEB_64
            check_install_ia32
            ;;      
        esac
    fi
   
    #------------------------
    # install start
    #------------------------
    C_output_log "Install Start"
    C_output_message "Machine Type = $MACHINE_TYPE"
    C_output_message "Package Type = $PACKAGE_TYPE"
   
    DRIVER_PACKAGE=`find . -name "*$MACHINE_TYPE.$PACKAGE_TYPE" | sort 2> /dev/null`
   
    C_output_message "Package list = "
   
    for list in $DRIVER_PACKAGE
    do
        C_output_message "    $list"
    done
    echo
   
    C_install_package
    C_install_package_check
    C_install_printer_driver
    C_init_cups restart
}

main $*

C_output_message "Complete"

exit 0
 

 

 

  • ?
    가벼운게최고 2019.12.18 18:18
    실행했을때 나오는 문구를 알려주셔야 답변이 가능합니다.. 관리자권한으로 살행해야할거 같은데 관리자 권한으로 실행하셨나요? 혹시 프린터가 공유기와 연결되어있다면 cups로도 가능할거 같습니다.
  • ?
    꽁이 2019.12.18 19:21

    install.sh 를 더블클릭하니 텍스트편집기(Pluma)가 열리고 암호문같은 글이 열렸습니다.
    실행을 어떻게 해야 설치되는지 잘 모르겠네요. 가장 기초적인 질문인듯 하나 제게는 어렵네요. 검색을 해도 윈도우에 비해 찾기도 어렵습니다.

  • ?
    가벼운게최고 2019.12.18 19:48
    아.. 저 파일이 열렸다는거네요.. 저게 설치 프로그램입니다. 다만 메모장같은 프로그램으로 실행해서 그런거고, 터미널에서 sudo키워드와 함께 사용하면 되는데 어떻게 설명해야될지 잘 모르겠네요
  • ?
    가벼운게최고 2019.12.18 19:51
    위 인스톨 프로그램을 오른쪽마우스로 클릭해서 속성?등록정보?를 선택해서 실행권한을 체크하는게 우선일거 같고. 탐색기에서 오른쪽마우스를 클릭하면 여기서 터미널 실행이라는 버튼이 있을겁니다. 그걸 누르면 cmd같은데 나오는데 거기서 sudo ./install.sh 라고 치고 엔터하시면 됩니다.
  • ?
    가벼운게최고 2019.12.18 19:53
    제가 하모니카가 정확하게 어떻게 생겼는지 잘 몰라서 속성은 확실하지 않으니 터미널에서 sudo chmod +x ./install.sh 라고 하셔도 실행권한이 생깁니다.
  • ?
    가벼운게최고 2019.12.18 19:52
    아무 프로그램이나 실행되면 문제가 되니 실행권한을 줘야 실행이 되는 보안사항으로 인해 문제를 겪으신거 같습니다.
  • ?
    자유의지 2019.12.23 16:13
    리눅스가 이런 면이 답답한 것 같습니다. sh 실행파일이면 더블클릭으로 실행하되 윈도우처럼 경고문을 띄우면 될텐데요. 속성에서 '프로그램으로 실행'을 체크해야한다던지 전체 속성을 전부 변경해야한다던지 답답한 면이 있어요.
  • ?
    Moordev 2019.12.23 17:59
    그런데 퍼미션은 윈도우가 너무 과하게 풀어줬다는 감이 있습니다. 도스 시절의 그 영향으로 보이는데 리눅스는 원래 확장자 개념이 없지요. 그냥 확장자는 참고용이고 본래는 파일 헤더로 처리합니다. exe확장자면 일단 닥치고 실행해보는 윈도우랑 다르죠.
    그런데 또 무작정 #!로 시작한다고 실행스크립트로 처리했다가는 윈도우같은 보안 구멍투성이 될겁니다.

    인터넷에서 텍스트파일을 다운로드 받았는데 그게 알고보니 백도어 스크립트였다면? 그리고 그걸 실수로 열기를 눌러서 실행해 버렸다면??? 심지어 대형 호스팅 서버에서 그랬다면?????

    그래서 관리자(root)의 검사를 한번 더 받는것이고 관리자의 허가하에 실행이 되는 구조입니다.

    불편하긴하지만 UAC등을 굳이 추가해서 돌아가는 윈도우보다는 깔끔하죠.

List of Articles
번호 제목 추천 수 글쓴이 날짜 조회 수
1847 정보자산의 관리 콘솔 접근 시 보안 강화를 위한 2차 인증(추가 인증) 적용 file 0 BaroPAM 2024.03.15 50
1846 액정이 깨져버렸네요 0 다찌마와 2024.03.14 93
1845 봄내음나네요 0 닝니니 2024.03.12 59
1844 [★고용노동부 5년인증 우수훈련기관] K-디지털트레이닝 신기술 IT 실무 인재 양성 모집 0 아이티윌부산 2024.03.12 36
1843 [긴급] 자동 로그인 기능 악용한 로그인 정보 탈취 범죄 급증…주의 1 file 0 BaroPAM 2024.03.09 114
1842 봄임에도 불구하고.. file 0 재여이 2024.03.08 93
1841 올해능.. 0 민지렁이 2024.03.08 46
1840 얼른 벚꽃이나 폈으면 좋겠네요 0 민지렁이 2024.03.08 45
1839 [★고용노동부 5년인증 우수훈련기관] 전액국비지원 기업형 실무 인재 양성 자바웹개발자 과정! 0 아이티윌부산 2024.03.07 29
1838 3월인데 여전히 춥네요 0 닝니니 2024.03.06 45
1837 개학과 봄 적응이 필요하네요. 0 용소야 2024.03.06 40
1836 모두 저녁 드셨습니까? 0 재여이 2024.03.04 60
1835 삼성 서비스센터 다녀와서 0 다찌마와 2024.03.02 101
1834 화면 플리커 현상 1 0 동민 2024.02.29 114
1833 [★고용노동부 5년인증 우수훈련기관] K-디지털트레이닝 신기술 IT 실무 인재 양성 모집 0 아이티윌부산 2024.02.26 68
1832 일주이라는 시간이 참.. 0 재여이 2024.02.23 206
1831 층간소음 어떻게 0 다찌마와 2024.02.21 182
1830 [★고용노동부 5년인증 우수훈련기관] K-디지털트레이닝 신기술 IT 실무 인재 양성 모집 0 아이티윌부산 2024.02.20 132
1829 '자동 로그인' 설정으로 인한 해킹의 피해를 예방할 수 있는 최선책은? file 0 BaroPAM 2024.02.20 175
1828 가입인사 드립니다. file 0 CrashOverride 2024.02.18 136
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 94 Next
/ 94
CLOSE