32비트 라이브러리를 설치하려고 하면 apt-get install liblua5.2:i386
apt는 필요한 많은 64비트 패키지가 제거될 것이라고 경고합니다. 그 중 일부는 32비트 버전으로 대체되지만 일부는 그렇지 않습니다.
32비트와 64비트 패키지는 병렬로 작동해야 하지 않나요? 시스템은 Ubuntu 14.04 64-bit이며, kde-plasma-desktop, kde-workspace, build-essential, gcc-4.8 등 필수 패키지는 제거될 예정입니다.
이것은 패키지 및 해당 종속성의 디자인 버그입니까?
The following packages will be REMOVED
build-essential cpp cpp-4.8 g++ g++-4.8 gcc gcc-4.8 gcc-4.8-multilib
gcc-multilib kde-plasma-desktop kde-workspace kde-workspace-bin libbonobo2-0
libbonoboui2-0 libgnome2-0 libgnome2-bin libgnome2-perl libgnomeui-0
libidl-common libidl0 liblua5.2-rrd-dev liblua5.2-rrd0 liborbit2 librrd4
libtool php5-dev shutter x11-apps x11-session-utils x11-xserver-utils
전체 출력:
The following extra packages will be installed:
gcc-4.8-base gcc-4.8-base:i386 lib32asan0 lib32atomic1 lib32gcc-4.8-dev
lib32gomp1 lib32itm1 lib32quadmath0 libasan0 libatomic1 libc6-dev:i386
libdbi1:i386 libgcc-4.8-dev libgfortran3 libgomp1 libitm1 libquadmath0
libreadline-dev:i386 libreadline6-dev:i386 librrd4:i386 libstdc++-4.8-dev
libstdc++6 libstdc++6:i386 libtinfo-dev:i386 libtsan0 libx32asan0
libx32atomic1 libx32gcc-4.8-dev libx32gomp1 libx32itm1 libx32quadmath0
linux-libc-dev linux-libc-dev:i386
Suggested packages:
glibc-doc:i386 manpages-dev:i386 libstdc++-4.8-doc
Recommended packages:
gcc:i386 c-compiler:i386 ttf-dejavu:i386 ttf-bitstream-vera:i386
The following packages will be REMOVED
build-essential cpp cpp-4.8 g++ g++-4.8 gcc gcc-4.8 gcc-4.8-multilib
gcc-multilib kde-plasma-desktop kde-workspace kde-workspace-bin libbonobo2-0
libbonoboui2-0 libgnome2-0 libgnome2-bin libgnome2-perl libgnomeui-0
libidl-common libidl0 liblua5.2-rrd-dev liblua5.2-rrd0 liborbit2 librrd4
libtool php5-dev shutter x11-apps x11-session-utils x11-xserver-utils
The following NEW packages will be installed
libc6-dev:i386 libdbi1:i386 liblua5.2-0:i386 liblua5.2-0-dbg:i386
liblua5.2-dev:i386 liblua5.2-rrd-dev:i386 liblua5.2-rrd0:i386
libreadline-dev:i386 libreadline6-dev:i386 librrd4:i386 libtinfo-dev:i386
linux-libc-dev:i386
The following packages will be upgraded:
gcc-4.8-base gcc-4.8-base:i386 lib32asan0 lib32atomic1 lib32gcc-4.8-dev
lib32gomp1 lib32itm1 lib32quadmath0 libasan0 libatomic1 libgcc-4.8-dev
libgfortran3 libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libstdc++6
libstdc++6:i386 libtsan0 libx32asan0 libx32atomic1 libx32gcc-4.8-dev
libx32gomp1 libx32itm1 libx32quadmath0 linux-libc-dev
26 to upgrade, 12 to newly install, 30 to remove and 316 not to upgrade.
Need to get 12.1 MB of archives.
After this operation, 73.3 MB disk space will be freed.
Do you want to continue? [Y/n]
답변1
시도해 보세요. 패키지 apt-get install liblua5.2-0:i386
가 없어 , 및 을 설치 하려고 합니다 . 패키지는 삭제를 일으킨 패키지입니다.liblua5.2
apt-get install liblua5.2:i386
liblua5.2-dev:i386
liblua5.2-0-dbg:i386
liblua5.2-0:i386
-dev
지정된 패키지 이름에 설명서 .
의 ; 가 포함되어 있기 때문에 검색 확장이 발생합니다 .apt-get
주어진 표현식과 일치하는 패키지가 없고 표현식에 '.', '?' 또는 '*' 중 하나가 포함되어 있으면 POSIX 정규 표현식으로 간주되어 데이터베이스의 모든 패키지 이름에 적용됩니다. 그런 다음 모든 일치 항목을 설치(또는 제거)합니다. 일치는 하위 문자열로 수행되므로 "lo.*"는 "how-lo" 및 "lowest"와 일치합니다. 이러한 일이 발생하지 않도록 하려면 "^" 또는 "$" 문자를 사용하여 정규식을 고정하거나 보다 구체적인 정규식을 만드십시오.
따라서 다음을 실행하여 이를 피할 수 있습니다.
apt-get install ^liblua5.2:i386$
(올바르게 실패했습니다). 이 규칙은 분명히 일반적인 적용 가능성이 있습니다. apt-get
패키지 이름이 패키지 이름과 정확히 일치하지 않으면 표현식 .
에 또는 가 포함되어 있지 않더라도 ?
패키지 이름을 정규식으로 사용하려고 시도합니다 *
.