자유게시판

예전에 리눅스를 몇번 시도하였으나 설치 후 바로 지운경험이 있습니다.
윈도우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
번호 제목 추천 수 글쓴이 날짜 조회 수
1675 노트북에 하모니카 OS 설치할까 하는데 2 0 영호민 2023.10.01 682
1674 구글TV는 안드로이드 셉탑 기능이 들어간 건가요? 3 0 하늘구름 2023.10.01 616
1673 정보자산의 보안 강화를 위한 2차 인증이란? file 0 BaroPAM 2023.09.30 1137
1672 영상편집 하려고 file 0 재여이 2023.09.27 545
1671 이제 곧 추석이네요 0 wjisl 2023.09.26 496
1670 AI SUMMIT SEOUL 2023 다녀오신 분들 후기를 보면 0 leaveoiop 2023.09.26 644
1669 유튜브 편집 하려는데 1 0 고고고고고 2023.09.25 602
1668 무엇 보다도 2차 인증을 우선적으로 도입해야 하는 곳은 바로 다양한 애플리케이션이 운영되는 운영체제(OS)가 가장 기본 1 file 0 BaroPAM 2023.09.22 1000
1667 인생에 이것보다 더 중요한게 있을까요 file 0 재여이 2023.09.21 596
1666 만약을 위해 외워둬야 하는 것들 file 0 재여이 2023.09.20 646
1665 이번달엔티비를 많이보게되겠네요 0 konnono00 2023.09.17 515
1664 한 일본 기업의 횡포.. '미나마타병' 0 KIN거운 2023.09.15 648
1663 진짜 쉽지 않은 선택의 순간 1 file 0 재여이 2023.09.15 667
1662 망분리로 인한 보안이 강화된다는 것은 어불성설이며, 지금은 정보보안에 대한 인식의 대전환이 필요한 시대 file 0 BaroPAM 2023.09.15 1179
1661 우분투에서 윈도우용 한글 2022(한컴 오피스 2022) 실행 성공했습니다. 4 0 polymath 2023.09.14 884
1660 하모니카OS를 이용한 diy 맥북(?) 만들기 2 file 0 하늘구름 2023.09.13 762
1659 [SD러닝데이 세미나] SO FUN, SO EASY! Stable Diffusion Prompting file 0 인공지능팩토리 2023.09.13 484
1658 C++을 만든 Bjarne Stroustrup의 인생 조언 0 하늘구름 2023.09.11 636
1657 그건 아마도 우리의 잘못 아니지 않았을까요? 0 곽철용 2023.09.11 592
1656 블로그 누락 한달동안 싸워서 100% 재반영 누락글 다잡아 file 0 닭발곰탕 2023.09.11 615
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 93 Next
/ 93
CLOSE