오늘 저는 Elementary OS Loki를 가상 머신에 설치했습니다.
나는 이 시스템이 얼마나 빠르고 아름다운지에 놀랐다.
그러나 요점은 다음과 같습니다.
.deb
패키지를 설치하고 Elementary OS에 대한 종속성을 해결하려면 어떻게 해야 합니까 ?
답변1
저는 실제로 aptitude
패키지 종속성을 설치/해결하기 위해 패키지 관리자를 사용하는 것을 선호합니다. 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install aptitude
apt
이 명령은 / 와 매우 유사합니다 apt-get
.
aptitude
종속성을 처리하는 다른 도구보다 더 똑똑한 것 같습니다. 또한 제거/설치 프로세스를 처리하기 위한 대안이 포함된 메뉴가 표시되며, 첫 번째 선택을 거부하는 경우 대안이 있는 경우 표시됩니다.
$sudo aptitude purge libasound2
The following packages will be REMOVED:
libasound2{p} libasound2-data{u}
The following packages have unmet dependencies:
openjdk-8-jre : Depends: libasound2 (>= 1.0.16) but it is not going to be installed
The following actions will resolve these dependencies:
Remove the following packages:
1) openjdk-8-jre [8u111-b14-3 (now, testing)]
Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) libasound2 [1.1.2-1 (now, testing)]
2) libasound2-data [1.1.2-1 (now, testing)]
Accept this solution? [Y/n/q/?]
데비안 적성에서위키피디아:
Aptitude에는 다음과 같은 유용한 기능이 많이 있습니다.
- 유연한 방식으로 패킷 태그를 일치시키는 mutt와 유사한 구문
- 패키지가 더 이상 필요하지 않을 때 자동으로 제거될 수 있도록 패키지를 "자동 설치" 또는 "수동 설치"로 설정하세요.
- 예정된 작업의 색상 미리보기
- dselect와 유사한 사용자 작업 지속성
- 대부분의 패키지에 대한 데비안 변경 로그를 검색하고 표시하는 기능
- AptCLI 스타일(= apt-get + apt-cache) 명령줄 모드("aptitude install foo")
- (보통) apt-get보다 더 똑똑한 점수 기반 종속성 해결 프로그램
수년 동안 더 이상 사용되지 않는 것으로 나열되어 있고 다른 도구도 비슷한 기능을 제공하지만 debfoster
시스템의 남은 부분을 정리하는 것이 좋습니다. debfoster
기본 설치/템플릿으로 사용하기 위해 기본 VM을 축소하는 데 도움이 되는 등 특히 흥미롭습니다.
다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install debfoster
또한 테스트를 수행하기 전에 패키지의 실제 상태를 저장하기 위해 사전 프로덕션 VM에서 자주 사용하고, 실행하기 전과 마찬가지로 저장된 상태를 복원하여 추가된 모든 패키지를 제거하는 데 사용합니다.
debfoster - 불필요한 데비안 패키지 제거
debfoster는 종속성으로 설치되지 않고 명시적으로 요청된 설치된 패키지 목록을 유지 관리합니다. 매개변수는 완전히 선택사항이며 dpkg 및/또는 apt-get을 실행할 때마다 debfoster 자체를 호출할 수 있습니다.
또는 debfoster를 사용하여 명령줄에서 패키지를 지정하여 패키지를 설치 및 제거할 수 있습니다. - 접미사가 있는 패키지는 제거되고 접미사가 없는 패키지는 설치됩니다.
새 패키지가 발견되거나 debfoster가 이전에 종속성이었던 패키지가 이제 고아 패키지라는 것을 발견하면 이를 어떻게 해야 할지 묻습니다. 이를 유지하기로 결정하면 debfoster는 이를 기록하고 계속 진행합니다. 이 패키지가 충분히 흥미롭지 않다고 생각되면 debfoster가 요청을 마친 후에 제거됩니다. 귀하의 선택으로 인해 다른 패키지가 분리되면 더 많은 문제가 발생할 수 있습니다.
$sudo debfoster
smem is keeping the following 27 packages installed:
blt fonts-lyx libglade2-0 libjs-jquery libjs-jquery-ui liblapack3 libtk8.6 libwebp6
libwebpdemux2 libwebpmux2 libxss1 python-cairo python-cycler python-dateutil
python-glade2 python-gobject-2 python-gtk2 python-imaging python-matplotlib
python-matplotlib-data python-numpy python-pil python-pyparsing python-tk python-tz
tk8.6-blt2.5 ttf-bitstream-vera
Keep smem? [Ynpsiuqx?], [H]elp: Y
imvirt is keeping the following 9 packages installed:
imvirt-helper libemail-date-format-perl libfile-slurp-perl libfile-which-perl
libimvirt-perl libmime-lite-perl libmime-types-perl libmodule-find-perl pciutils
Keep imvirt? [Ynpsiuqx?], [H]elp: Y
linux-image-4.8.0-1-amd64-unsigned is keeping the following 9 packages installed:
busybox firmware-linux-free initramfs-tools initramfs-tools-core irqbalance
klibc-utils libklibc libnuma1 linux-base
Keep linux-image-4.8.0-1-amd64-unsigned? [Ynpsiuqx?], [H]elp: Y
faketime is keeping the following 1 packages installed:
libfaketime
Keep faketime? [Ynpsiuqx?], [H]elp: N
haveged is keeping the following 1 packages installed:
libhavege1
Keep haveged? [Ynpsiuqx?], [H]elp: Y
Keep libfaketime? [Ynpsiuqx?], [H]elp: N
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
faketime* libfaketime*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 127 kB disk space will be freed.
Do you want to continue? [Y/n]
답변2
목표를 달성하는 방법에는 여러 가지가 있으므로 두 가지를 나열하겠습니다.명령줄 인터페이스주관적으로 가장 좋고 권장되는 옵션 apt
:
첫번째 선택: apt
(그리고 apt-get
)
sudo apt install ./long-package-name.deb
apt
파일 이름을 자동 완성하지 않으므로 구체적으로 가 아니라 를 의미합니다 apt-get
. 그렇지 않으면 apt-get
스크립트에서 물론 그렇게 할 수 있습니다.
PACKAGE=$(echo long-package-name.deb)
sudo apt-get install ./$PACKAGE
두 번째 선택: gdebi
sudo gdebi long-package-name.deb
나는 그것을 사용하지 않기 때문에 gdebi
방금 시도한 것 외에는 추천하거나 반대할 수 없습니다. 다음 내용을 공유하겠습니다.
.deb
패키지를 설치했어요apt
- 나는 달렸다
sudo apt update
sudo apt install ./long-package-name.deb
예상 결과를 실행했습니다 .PACKAGE는 이미 최신 버전(VERSION)입니다.
- 다음을 실행
sudo gdebi long-package-name.deb
하면 바람직하지 않은 결과가 나타납니다 .패키지를 설치하시겠습니까?
어쩌면 그것은 단지 나이고 그것을 올바르게 사용하는 방법을 모르는 것일 수도 있습니다 gdebi
.