Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ros-noetic-desktop-fullが入らないと思ったら作業環境が不一致の18.04だったおという話。

Ubuntu20……だと思っていた環境

E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

なんのことはなく、使っていたのがUbuntu18系だったというオチ。
noeticは20系対応なので、インストールできんというわけです。

実際のところ

$ sudo apt-get install ros-noetic-desktop-full
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 ros-noetic-desktop-full : 依存: ros-noetic-desktop しかし、インストールされようとしていません
                           依存: ros-noetic-perception しかし、インストールされようとしていません
                           依存: ros-noetic-simulators しかし、インストールされようとしていません
                           依存: ros-noetic-urdf-sim-tutorial しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

【有効でない解決法】後世への戒めとして我が恥を遺す

aptitudeが有効という噂を聞いたので

$ sudo apt install aptitude

何やら依存関係らしきものを解消してくれている

$ sudo aptitude install ros-noetic-desktop-full
以下の新規パッケージがインストールされます:
  blt{a} bzip2-doc{a} curl{a} cython{a} default-libmysqlclient-dev{a} dh-python{a} docutils-common{a} 
  fltk1.3-doc{a} fluid{a} fonts-lato{a} fonts-lyx{a} gazebo11{ab} gazebo11-common{a} 
  gazebo11-plugin-base{ab} gir1.2-gtk-2.0{a} gir1.2-harfbuzz-0.0{a} google-mock{a} googletest{a} 
...
...
  xml-core{a} 
0 個のパッケージを更新、 782 個を新たにインストール、 0 個を削除予定、0 個が更新されていない。
アーカイブの 376 MB/376 MB を取得する必要があります。 展開後に 1,692 MB のディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
 ros-noetic-laser-filters : 依存: libboost-filesystem1.71.0 いずれの利用可能なパッケージからも提供されていない仮想パッケージです

                            依存: libc6 (>= 2.29) 2.27-3ubuntu1.3 がインストール済みです
                            依存: libgcc-s1 (>= 3.0) いずれの利用可能なパッケージからも提供されていない仮想パッケージです

                            依存: libstdc++6 (>= 9) 8.4.0-1ubuntu1~18.04 がインストール済みです
                            依存: libtinyxml2-6a (>= 5.0.0) いずれの利用可能なパッケージからも提供されていない仮想パッケージです
...
...

 ros-noetic-dynamic-reconfigure : 依存: libgcc-s1 (>= 3.0) いずれの利用可能なパッケージからも提供されていない仮想パッケージです

以下のアクションでこれらの依存関係の問題は解決されます:

       以下のパッケージを現在のバージョンに一時固定する:                         
1)       gazebo11 [インストールされていません]                                   
2)       gazebo11-plugin-base [インストールされていません]                       
3)       libgazebo11 [インストールされていません]                                
...
...
237)     ros-noetic-xacro [インストールされていません]                           
238)     ros-noetic-xmlrpcpp [インストールされていません]                        



この解決方法を受け入れますか? [Y/n/q/?] 

Yで進める。

以下の新規パッケージがインストールされます:
  blt{a} bzip2-doc{a} curl{a} fonts-lyx{a} graphviz{a} hdf5-helpers{a} libaec-dev{a} libann0{a} 
  libcdt5{a} libcgraph6{a} libcurl4-openssl-dev{a} libgts-0.7-5{a} libgts-bin{a} libgvc6{a} libgvpr2{a} 
  libhdf4-alt-dev{a} libhdf5-cpp-100{a} libhdf5-dev{a} liblab-gamut1{a} libldap2-dev{a} 
  libnetcdf-dev{a} libpathplan4{a} libssl-dev{a} mpi-default-bin{a} python3-setuptools{a} python3-tk{a} 
  tcl{a} tcl8.6{a} tk{a} tk8.6{a} tk8.6-blt2.5{a} ttf-bitstream-vera{a} 
0 個のパッケージを更新、 32 個を新たにインストール、 0 個を削除予定、0 個が更新されていない。
アーカイブの 8,909 kB を取得する必要があります。 展開後に 40.7 MB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]

ダラダラと導入がすすみ……冒頭のように、だめでした。