ICTSC2024 本戦 問題解説: [LTN] APT. (Advanced Packaging Tool)
問題文
概要
なんてことだ! 俺のオアシスapt moo
が実行できない!
そういえば前々からaptの調子が悪かったな。昨日なんてコマンドが無いぞ(意訳)とか言ってたし。
もしかして先週に間違ってaptの設定ファイルを全て消してしまったのが原因か?
この問題を解決できればapt moo
を実行できるってこと!?
でもaptの設定ファイルなんて持ってないぞ...
どうしよう...そうだ!art先輩がaptの設定ファイルをバックアップしてるusbを持っているとか言ってたな。
そのusbを借りに行ってこよう。
前提条件
- usbはすでにマウントされている(自動マウント)
- VMのインターネット疎通性は無いものとする(外との通信は
apt update
を実行するときのみ使用可能) - mooの質問に回答すること。
初期状態
手元のPCから $ sudo apt update
を実行できない
手元のPCから $ sudo apt moo
を実行できない
終了状態
手元のPCから $ sudo apt update
を実行でき、正常に動作する
手元のPCから $ sudo apt moo
を実行でき、正常に動作する
解説
usbにバックアップしてあるファイルを/etc/
にcp
する
USBの自動マウント先/media
直下のファイルを/etc
に移動する
usbの場所は/media/usb/
$ sudo cp /media/usb/backup/apt /etc/
/bin/apt
が/bin/ɑpt
になっている。これはlsをすれば一番最後に表示されるためすぐ分かる
ɑpt
をapt
に変える
$ sudo mv /bin/ɑpt /bin/apt
最後にsudo apt update``sudo apt moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
「君は今日モーモー鳴いたかい?」
複数のチームがシンボリックリンクやエイリアスの作成、SCPを用いた解答を行っていた。
-
シンボリックリンクやエイリアスの作成を行い裏でapt-getを動かす方法については、終了状態の「手元のPCから
$ sudo apt update
を実行でき、正常に動作する。」を満たしていないため不正解。(たとえaptにシンボリックリンクやエイリアスを設定しても実際に動いているのはapt-getのため) -
scp
を使う解決法については、前提条件の「VMのインターネット疎通性は無いものとする」より、同じネットワークにいるローカル環境もインターネット疎通性が無いため不正解。- ただし、別のネットワークでダウンロードしたと明記してある場合は別解として認める。
採点基準
/etc/
の修正 20点/bin/apt
の修正 130点
講評
かなり多くのチームがモーモー鳴いていました。
ちなみに自分は本戦当日の朝起きたときにモーモーしました^^