aptでlibssl1.0-devをインストールするとrosが削除された


概要

もともとrosが入っていたubuntu18.04のPCにnodejsをインストールしたくて、libssl1.0-devが必要と言われたので、以下のコマンドをうったらros関連を大量にremoveされた。

apt install libssl1.0-dev

Start-Date: 2020-08-06  11:19:07
Commandline: apt install libssl1.0-dev
Requested-By: solitude_under_the_blue_sky (1000)
Install: libcurl4-gnutls-dev:amd64 (7.58.0-2ubuntu3.9, automatic),
 libssl1.0-dev:amd64 (1.0.2n-1ubuntu5.3)
Remove: ros-melodic-image-proc:amd64 (1.15.0-1bionic.20200530.124945),
 ros-melodic-rviz-visual-tools:amd64 (3.8.0-4bionic.20200624.182713),
 ros-melodic-qt-gui-cpp:amd64 (0.4.1-1bionic.20200613.044041),
 ros-melodic-turtlebot3-slam-dbgsym:amd64 (1.2.2-1bionic.20200530.121003),
 ros-melodic-moveit-planners-chomp:amd64 (1.0.4-1bionic.20200630.153721),
 ros-melodic-diff-drive-controller:amd64 (0.17.0-1bionic.20200530.114114),
 ros-melodic-common-tutorials:amd64 (0.1.11-0bionic.20200530.090435),
 ros-melodic-rosmsg:amd64 (1.14.6-1bionic.20200530.031608),
 etc....

nodejsで行う作業が一旦終わって、元の環境に戻したいので、手順のメモ。

初期状態

aptのhistory.logから、上記のようにコマンドを打った際にremoveされたものの一覧を取得し、テキストエディタに貼り付ける。以下の通り。

Remove: ros-melodic-image-proc:amd64 (1.15.0-1bionic.20200530.124945), ros-melodic-rviz-visual-tools:amd64 (3.8.0-4bionic.20200624.182713), ros-melodic-qt-gui-cpp:amd64 (0.4.1-1bionic.20200613.044041), ros-melodic-turtlebot3-slam-dbgsym:amd64 (1.2.2-1bionic.20200530.121003),

あとでapt installする用にプログラムを整理する。
まず、コンマスペースを全て改行に置換。
スペースはLinuxでは\s
ラインフィードは\n

  • [find] ,\s
  • [replace] \n

するとこうなる

Remove: ros-melodic-image-proc:amd64 (1.15.0-1bionic.20200530.124945)
ros-melodic-rviz-visual-tools:amd64 (3.8.0-4bionic.20200624.182713)
ros-melodic-qt-gui-cpp:amd64 (0.4.1-1bionic.20200613.044041)
ros-melodic-turtlebot3-slam-dbgsym:amd64 (1.2.2-1bionic.20200530.121003)

カッコで囲まれた部分はaptで認識されないので、これも正規表現で消去
replaceに何も書かなければ消去される。

  • [find] \(.*\)
  • [replace]

結果がこちら。

Remove: ros-melodic-image-proc:amd64 
ros-melodic-rviz-visual-tools:amd64 
ros-melodic-qt-gui-cpp:amd64 
ros-melodic-turtlebot3-slam-dbgsym:amd64 

あとは「Remove:」を消す。「:amd64」はあってもなくても良いが、一応以下のようにして消した。

  • [find] :amd64
  • [replace]

最終的には以下のようになる。

ros-melodic-image-proc 
ros-melodic-rviz-visual-tools 
ros-melodic-qt-gui-cpp 
ros-melodic-turtlebot3-slam-dbgsym 

これを、history_fix.logとして保存。

その後、history_fix.logが存在するディレクトリで
以下のように端末からapt installを実行。

cat history_fix.log | xargs sudo apt install -y

とりあえず、aptだけはこれでOK。しかしバージョンとかは元のやつが入らないので
コンパイルして動くやつは結局全部コンパイルし直し。

2020年8月15日 お盆のためか、交通量が少ない。