Skype용 최신 "multiarch" .deb 파일을 다운로드했지만 최신 버전의 LMDE(linux mint debian 버전 Xfce x86_64)에 설치할 수 없습니다. 예를 들어
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단계(손상 복구 시도):
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
해결되지 않은 종속성이 필요한 경우 이 패키지가 문제가 되어 제거된다는 것입니다.
또한 손상된 패키지에 필요한 라이브러리와의 잠재적 충돌을 해결하기 위해 다른 응용 프로그램에서 원하거나 필요할 수 있는 패키지가 손상되거나 제거될 수 있습니다.
이런 식으로 패키지를 설치하는 것은 문제가 있습니다. 한 사람에게는 효과가 있는 것이 다른 사람에게는 효과가 없을 수도 있습니다. 그 이유는 다음과 같습니다.
- PPA 저장소의 .debs가 최신 버전으로 업그레이드되었으며 더 이상 손상된 설치 응용 프로그램의 문제를 해결할 수 없습니다.
- 시스템의 PPA 설정은 다른 시스템과 약간 다릅니다.
- 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 -f
apt-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
확인할 수 있습니다 .skype
ldd
$ 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에서 작동하지 않습니다.