LMDE에 Skype를 설치할 수 없습니다. 이러한 종속성을 해결하는 방법은 무엇입니까?

LMDE에 Skype를 설치할 수 없습니다. 이러한 종속성을 해결하는 방법은 무엇입니까?

Skype용 최신 "multiarch" .deb 파일을 다운로드했지만 최신 버전의 LMDE(linux mint debian 버전 Xfce x86_64)에 설치할 수 없습니다. 예를 들어

  1. 1 단계 :

    sudo dpkg -i skype-debian_4.1.0.20-1_i386.deb 
    

    산출:

    dpkg: dependency problems prevent configuration of skype:
    skype depends on libqt4-dbus (>= 4:4.5.3).
    skype depends on libqt4-network (>= 4:4.8.0).
    skype depends on libqt4-xml (>= 4:4.5.3).
    skype depends on libqtcore4 (>= 4:4.7.0~beta1).
    skype depends on libqtgui4 (>= 4:4.8.0).
    skype depends on libqtwebkit4 (>= 2.1.0~2011week13).
    
  2. 2단계(손상 복구 시도):

    sudo apt-get install -f
    
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Correcting dependencies... Done
    The following extra packages will be installed:
      libapache2-mod-php5filter
    Suggested packages:
      php-pear
    The following packages will be REMOVED:
      libapache2-mod-php5 php5-cli skype:i386
    The following NEW packages will be installed:
      libapache2-mod-php5filter
    0 upgraded, 1 newly installed, 3 to remove and 3 not upgraded.
    1 not fully installed or removed.
    Need to get 0 B/2,663 kB of archives.
    After this operation, 44.9 MB disk space will be freed.
    

여기서 가장 큰 관심사는 LAMP 관련 파일을 삭제하는 방식입니다. 예를 들면 다음과 같습니다.

The following packages will be REMOVED:
libapache2-mod-php5 php5-cli skype:i386

설치된 다른 응용 프로그램에 영향을 주지 않고 Skype를 설치할 수 있는 방법이 필요합니다.

sudo apt-get install -f종속성을 수정하지 않고 제거 하면 됩니다 .

누군가 LAMP를 그대로 유지하면서 Skype를 설치하는 단계별 명령을 작성하고 Apache와 Skype가 충돌하는 이유를 설명할 수 있다면 감사하겠습니다.

답변1

1. apt-get -f install로 문제가 해결되지 않는 이유는 무엇입니까?

어떤 의미에서는 sudo dpkg -i skype-debian_4.1.0.20-1_i386.deb패키지가 손상된 상태로 시스템에 설치되고 있으며 sudo apt-get install -f누락된 종속 라이브러리를 설치하여 현재 손상된 설정을 해결하려는 시도가 이루어집니다.

이 접근 방식의 가장 큰 단점은 손상된 패키지에 apt해결되지 않은 종속성이 필요한 경우 이 패키지가 문제가 되어 제거된다는 것입니다.

또한 손상된 패키지에 필요한 라이브러리와의 잠재적 충돌을 해결하기 위해 다른 응용 프로그램에서 원하거나 필요할 수 있는 패키지가 손상되거나 제거될 수 있습니다.

이런 식으로 패키지를 설치하는 것은 문제가 있습니다. 한 사람에게는 효과가 있는 것이 다른 사람에게는 효과가 없을 수도 있습니다. 그 이유는 다음과 같습니다.

  1. PPA 저장소의 .debs가 최신 버전으로 업그레이드되었으며 더 이상 손상된 설치 응용 프로그램의 문제를 해결할 수 없습니다.
  2. 시스템의 PPA 설정은 다른 시스템과 약간 다릅니다.
  3. 32비트와 64비트 아키텍처 및/또는 다른 아키텍처(예: ARM과 i686)의 차이점.

정말로 이 방법으로 설치하고 싶다면 다음 방법 중 하나를 사용하는 것이 좋습니다.

방법 #1 - 수동으로

손상된 시스템을 수정하는 데 필요한 것으로 간주되는 패키지를 수동으로 제거 apt하되 나중에 다시 넣을 수 있도록 이름을 기록해 두십시오.

sudo apt-get install -f해당 패키지가 제거되면 누락된 .deb 패키지가 실제로 설치된 것처럼 보일 때까지 다시 실행을 시도했습니다 skype.

방법 2 - "보류 중" 상태의 패키지 실행 취소

본질적으로 고정된 패키지 설치가 있을 수 있습니다. 이를 apt전문 용어로 "예약된" 상태라고 합니다. 다음 명령을 사용하여 이것이 귀하의 경우인지 확인할 수 있습니다.

sudo dpkg --get-selections | grep hold

패키지에 "예약됨" 상태가 표시되면 다음 명령을 사용하여 "설치됨"으로 변경할 수 있습니다.

sudo echo "package_name install"|dpkg --set-selections

그런 다음 다시 실행해 보세요 install -f.

sudo apt-get install -f

위의 기술은 askubuntu의 다음 Q&A에서 찾을 수 있습니다.

방법 #3 - 적성을 활용하라

"보류" 상태의 패키지가 있는 경우 이를 처리하는 또 다른 방법은 Aptitude를 aptitude사용하는 대신 해당 패키지를 해결하는 것 입니다 . Aptitude는 .apt-get install -fapt-get

"보류" 상태를 표시하는 패키지의 경우:

sudo aptitude install <package name>

위의 기술은 다음 Q&A에서 볼 수 있듯이 askubuntu에서 발견되었습니다.

2. 동적 타르볼을 사용하는 또 다른 방법

.deb 버전을 설치하려고 하지 않고 skype동적 버전(Skype 웹사이트 드롭다운의 마지막 버전)을 선택하려고 합니다. 이 버전은 홈 디렉토리나 심지어 에 배치될 수 있습니다 /opt/skype. 동적 버전에는 모든 skype소프트웨어가 포함되어 있습니다.

필요한 라이브러리에 대한 패키지를 설치해야 하지만 이렇게 하면 Apache/PHP 설정을 변경하지 않고 유지할 수 있습니다.

Dynamic Skype zip 패키지의 내용

$ tar jxvf skype-4.1.0.20.tar.bz2 
skype-4.1.0.20/
skype-4.1.0.20/third-party_attributions.txt
skype-4.1.0.20/LICENSE
skype-4.1.0.20/lang/
skype-4.1.0.20/lang/skype_es.ts
skype-4.1.0.20/lang/skype_es.qm
skype-4.1.0.20/lang/skype_pl.qm
skype-4.1.0.20/lang/skype_it.ts
skype-4.1.0.20/lang/skype_zh_t.qm
...
...

압축을 푼 후 cd로 스카이프 디렉터리로 이동합니다.

cd skype-4.1.0.20

그런 다음 거기에서 Skype를 실행하십시오.

./skype

종속성이 누락된 경우 시작 시 오류가 발생하거나 다음 명령을 사용하여 실행 파일에 필요할 수 있는 라이브러리를 skype확인할 수 있습니다 .skypeldd

$ ldd skype
    linux-gate.so.1 =>  (0xf7751000)
    libasound.so.2 => /lib/libasound.so.2 (0xf7621000)
    libXv.so.1 => /usr/lib/libXv.so.1 (0xf761c000)
    libXss.so.1 => /usr/lib/libXss.so.1 (0xf7619000)
    librt.so.1 => /lib/librt.so.1 (0x461b9000)
    libdl.so.2 => /lib/libdl.so.2 (0x46076000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x464c0000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x46c1c000)
    libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0xf75a1000)
    libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xf622d000)
    libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xf61ec000)
    libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xf5753000)
    libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xf562c000)
    libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xf5396000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x46059000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4a9d8000)
    libm.so.6 => /lib/libm.so.6 (0x4607d000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4623a000)
    libc.so.6 => /lib/libc.so.6 (0x45ecd000)
    /lib/ld-linux.so.2 (0x45eac000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x465f9000)
    libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x4a98b000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x4645c000)
    libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xf5301000)
    libphonon.so.4 => /usr/lib/libphonon.so.4 (0xf528e000)
    libpulse-mainloop-glib.so.0 => /usr/lib/libpulse-mainloop-glib.so.0 (0xf5289000)
    libpulse.so.0 => /usr/lib/libpulse.so.0 (0xf5242000)
    libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x460a9000)
    libXi.so.6 => /usr/lib/libXi.so.6 (0x46bfd000)
    libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x46bf3000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x466dc000)
    libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x46c34000)
    libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x466d7000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x42809000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x42840000)
    libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x461e1000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x46467000)
    libz.so.1 => /lib/libz.so.1 (0x461c4000)
    libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x461e8000)
    libSM.so.6 => /usr/lib/libSM.so.6 (0x46e21000)
    libICE.so.6 => /usr/lib/libICE.so.6 (0x46e91000)
    libssl.so.10 => /usr/lib/libssl.so.10 (0x4e0d3000)
    libcrypto.so.10 => /lib/libcrypto.so.10 (0x466e3000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x463e9000)
    libqzeitgeist.so.0 => /usr/lib/libqzeitgeist.so.0 (0xf521d000)
    libQtTest.so.4 => /usr/lib/libQtTest.so.4 (0xf51f9000)
    libpulsecommon-0.9.21.so => /usr/lib/libpulsecommon-0.9.21.so (0xf51a6000)
    libXtst.so.6 => /usr/lib/libXtst.so.6 (0xf51a0000)
    libwrap.so.0 => /lib/libwrap.so.0 (0xf5197000)
    libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xf5125000)
    libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0xf511f000)
    libexpat.so.1 => /lib/libexpat.so.1 (0x46619000)
    libuuid.so.1 => /lib/libuuid.so.1 (0x46e2b000)
    libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x4e08d000)
    libkrb5.so.3 => /lib/libkrb5.so.3 (0x4e12d000)
    libcom_err.so.2 => /lib/libcom_err.so.2 (0x4748f000)
    libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x4dfd7000)
    libresolv.so.2 => /lib/libresolv.so.2 (0x4627a000)
    libnsl.so.1 => /lib/libnsl.so.1 (0xf5102000)
    libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0xf50c5000)
    libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0xf4f4f000)
    libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xf4f25000)
    libogg.so.0 => /usr/lib/libogg.so.0 (0xf4f1f000)
    libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x4e0c7000)
    libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x47495000)
    libselinux.so.1 => /lib/libselinux.so.1 (0x46259000)

위 목록은 다소 어려울 수 있지만 기본적으로 각 라이브러리가 설치되었는지 확인하려면 반복적인 방식으로 이를 살펴봐야 합니다. 그렇지 않은 경우 apt-cache search <.so file name>라이브러리를 제공하는 패키지를 찾는 데 사용하십시오.

비오픈 소스 유형 프로젝트(예: Skype)의 바이너리 패키지의 경우 일반적으로 이 접근 방식을 사용하는 것이 더 쉽다고 생각합니다.

특정 버전의 라이브러리가 필요한 문제가 발생하면 skype직접 컴파일하여 에 넣을 수 있습니다 skype. 동적 라이브러리 로더가 일반 위치가 아닌 해당 위치에서 로드하도록 /opt/libs환경 변수를 설정해야 합니다. .LD_LIBRARY_PATH=/opt/libs/lib...skype

Skype용 정적 빌드

Skype는 모든 것이 포함되어 있어 사용이 매우 간단한 정적 빌드를 제공했지만 이 게시물에 따르면 다음과 같습니다.Skype 4.1용 정적 바이너리?, 그들은 이 제품을 포기하기로 결정한 것 같습니다.

이 스레드에는 Debian 7.0 다중 아키텍처에 문제가 있다는 설명도 있습니다.

마지막 문장 지원: Debian 7.0(다중 아키텍처)은 amd64에서 작동하지 않습니다.

인용하다

관련 정보