
Ubuntu日本語フォーラム

ログインしていません。
どうも。
僕の環境で、apt関連のコマンドが一切動きません。
原因はおそらくVisual Studio Codeです。
ちなみに、aptコマンドを実行しようとすると、(sudo apt installとした例)
/usr/bin/apt: 1: /usr/bin/apt: Syntax error: word unexpected (expecting ")")
apt-getだと
/usr/bin/apt-get: 8: /usr/bin/apt-get: Syntax error: ")" unexpected
となってしまいます。
解決策の方、よろしくお願いします。
オフライン
追記:どうやらadd-apt-repositoryは動きそうです
オフライン
ファイルシステムが破損しているようです。
Ubuntuのインストーラ等のライブ起動で、fsck を実行しファイルシステムを修復すれば解決すると思われます。
より詳細な手順が必要な場合は、投稿の手引きに記載の内容を参照されたうえで、yuuya_0183さんの環境をお知らせいただけますでしょうか。
オフライン
えっと…ライブ起動で$ sudo fsck /dev/sda2 でいいのでしょうか…?こちらはやっても効果はありませんでした。
もし違う手順だったら、詳しく教えてくれますでしょうか。
CPU Intel Core2 Duo P8700 @2.53GHz
RAM DDR3 SDRAM 4GB
GPU(チップセット内蔵) Mobile Intel GM45 Express Chipset
HDD Fujitsu 型番不明 500GB SATA/150 5400rpm
オフライン
以下の手順を試していただけますでしょうか。
1. HDDのフルバックアップ(未実施の場合)
2. 事前調査
3. 詳細調査
4. ファイルシステムの復旧
5. 実施結果の調査
6. 復旧しない場合
途中でエラーが出力される、又は異常な挙動がある場合は、当該内容の詳細(エラー出力等)をお知らせください。
■ 1. HDDのフルバックアップ
先の投稿の際に申し上げておくべきでした。申し訳ありません。fsck は必ずバックアップとセットで実行すべきコマンドです。
未実施の場合は、clonezilla 等でハードディスク全体をバックアップしてください。
■ 2. 事前調査
ハードティスクのOSを起動して、端末から「which apt」を実行してください。
実行結果の出力が「/usr/bin/apt」以外だった場合は、以下の手順を実施せず出力結果をお知らせください。
■ 3. 詳細調査
以下、対象のデバイス(aptコマンドが存在するデバイス)を「/dev/sda2」と表記します。適宜ご自身の環境に合わせて読みかえてください。
Ubuntu インストーラをライブ起動して、/dev/sda2 を読取専用でマウントしてください。
例えば「sudo mount -r /dev/sda2 /mnt」等です。
以下のコマンドを実行して apt コマンドの inode 番号をメモしてください。行頭に表示される数字が inode 番号です。
ls -li /mnt/usr/bin/apt
以下のコマンドを実行して inode 番号の整合性を確かめてください。inode番号には上記でメモした数値を使用します。
sudo find /mnt -inum inode番号
3-1. 上記コマンドの実行結果が「/mnt/usr/bin/apt」だった場合
sudo umount /mnt して、「5. 実施結果の調査」を実施してみてください。(「4.ファイルシステムの復旧」は実施しないでください)
3-2. コマンドの実行結果が「/mnt/usr/bin/apt」以外だった場合
sudo umount /mnt して、「4.ファイルシステムの復旧」を実施してみてください。
■ 4. ファイルシステムの復旧
※ fsck によるファイルシステム修復の過程で、ファイルシステム上のファイルが破損するおそれがあります。
※ どうしても失いたくないファイルが存在する場合は、ディスクの修復業者等への復旧依頼をご検討ください。
/dev/sda2 がアンマウントされていることを確かめてください。
以下のコマンドでファイルシステムの復旧を試行してください。
sudo e2fsck -c -p /dev/sda2
※ 何らかのエラー等で e2fsck が完了しない場合は、エラー出力をお知らせください。
■ 5. 実施結果の調査
ハードディスクのOSを起動して、端末から「apt --version」を実行してください。
aptのバージョンが表示されれば復旧したと考えられます。
fsck の実行で復旧した場合は、inode が書き換わってしまった原因を排除する必要があります。
考えられる原因の例
・ ハードディスクの物理的な損傷
・ inode を書き換えてしまうプロセス(又は人)の存在
等
■ 6. 復旧しない場合
以下の情報をお知らせいただけますでしょうか。
・「原因はおそらくVisual Studio Code」とお考えの理由
・以下のコマンドの実行結果
which apt file /usr/bin/apt file `which apt` ls -li /usr/bin/apt sudo find / -inum `ls -li /usr/bin/apt | cut -d' ' -f1` df -i
オフライン
解決しませんでした…。
・下のコマンドの実行結果
sudo findのところでこのエラー
find: ‘/run/user/1000/gvfs’: 許可がありません
・Codeが原因と考える理由
Codeを入れるときにaptを消されてapt:amd64を入れられたからです
オフライン
承りました。
状況の理解が不足した状況で、推測に基づいて誤ったワークアラウンドをご提示してしまいました。
とりあえず、以下の情報を個別に提供いただけますでしょうか。
which apt
file /usr/bin/apt
file `which apt`
apt コマンドについては、再インストールで 修復可能と思われます。
https://packages.ubuntu.com/ja/bionic/aptから、お使いのアーキテクチャに一致する deb パッケージをダウンロードし、
dpkg -i パッケージ名
仮に VSCode が apt を入替えたのであれば、VSCode の方で不具合が発生するかもしれません。
ただ、私は VSCodeが apt を入替えるという事例を他で聞いたことがありませんので、他に原因があるのではないかと考えています。
オフライン
再インストール2回しても治りませんでした…。
これが個別の実行結果です。
whitch apt-get
/usr/bin/apt-get
file /usr/bin/apt-get
/usr/bin/apt-get: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib, for GNU/Linux 3.2.0, BuildID[sha1]=e95fa37856774e869634070681cd2079a6a823d3, stripped
file 'witch apt-get'
上と同じく
オフライン
承知いたしました。
ライブラリ関連の問題かもしれません。
ldd /usr/bin/apt
の結果をお知らせください。
また、念のためカーネルが間違いなく64bitであることを確認させてください。
uname -a
の結果をお知らせください。
オフライン
多分ここを修正すれば治るのでは…?
ldd /usr/bin/apt-get
動的実行ファイルではありません
uname -a
Linux lubuntu-biblo 4.18.0-18-generic #19~18.04.1-Ubuntu SMP Fri Apr 5 10:20:43 UTC 2019 i686 i686 i686 GNU/Linux
オフライン
32bit版のOSをお使いなのですね。
aptのパッケージは32bit版(i386)をダウンロードされたでしょうか?
https://packages.ubuntu.com/ja/bionic/i386/apt/download
上記から32bit版の apt をダウンロードして
sudo dpkg -i apt_1.6.6ubuntu0.1_i386.deb
で修復可能と思うのですが。
apt が修復できたら、 sudo apt update , sudo apt install -f して依存関係を修復してみてください。
dpkg -i でエラーが出る場合は、そのエラー内容を教えていただけますでしょうか。
依存関係のエラーである場合、依存関係にあるパッケージも一つ一つダウンロードしてインストール及び修復する必要があります。
ただし、そのような状況であればOSを再インストールした方が早いかもしれません。
影響範囲を特定するのも難しそうです。
オフライン