私は最近、私のJava jreとJavaコンパイラのバージョンの不一致に関する問題を解決しようとしていたので、この回答で提案された何かを試しました。多くの賛成票があり、比較的無害であるように見え、正確な正しい質問に対する選択された回答でした: https://stackoverflow.com/questions/10585091/resolving-version-conflict-between-Java-and-javac -on-ubunt
ただし、残念ながら、次のコマンドを実行する前に脳を使用しませんでした。これは、私の場合に推奨されるコマンドです。
Sudo ln -s -f /usr/bin/* /usr/bin
さらに考えた結果、これは/ usr/binディレクトリー内のすべてのファイルを親ディレクトリーにシンボリックにリンクしていて、adfinitumで実行される循環ファイル構造を作成していることに気付きました。だから、悪夢。
/ usr/binディレクトリでls -l
を試してみると、次のような一連のエントリが表示されます。
-rwxr-xr-r 1 root root 5518 Feb 12 2014 xzcat -> /usr/bin/xzcat
しかし、もちろんこれを元に戻す簡単な方法はありますか?問題は、このプロセスで実際にファイルが追加されていないため、削除できるファイルがわからないことです。
何かご意見は?
これが私のコマンドの出力です:
ln: ‘/usr/bin/[’ and ‘/usr/bin/[’ are the same file
ln: ‘/usr/bin/2to3-2.7’ and ‘/usr/bin/2to3-2.7’ are the same file
ln: ‘/usr/bin/2to3-3.4’ and ‘/usr/bin/2to3-3.4’ are the same file
ln: ‘/usr/bin/2to3-3.5’ and ‘/usr/bin/2to3-3.5’ are the same file
ln: ‘/usr/bin/a2p’ and ‘/usr/bin/a2p’ are the same file
ln: ‘/usr/bin/ab’ and ‘/usr/bin/ab’ are the same file
ln: ‘/usr/bin/aclocal-1.15’ and ‘/usr/bin/aclocal-1.15’ are the same file
ln: ‘/usr/bin/aconnect’ and ‘/usr/bin/aconnect’ are the same file
ln: ‘/usr/bin/acpi_listen’ and ‘/usr/bin/acpi_listen’ are the same file
ln: ‘/usr/bin/activity-log-manager’ and ‘/usr/bin/activity-log-manager’ are the same file
ln: ‘/usr/bin/add-apt-repository’ and ‘/usr/bin/add-apt-repository’ are the same file
ln: ‘/usr/bin/addpart’ and ‘/usr/bin/addpart’ are the same file
ln: ‘/usr/bin/addr2line’ and ‘/usr/bin/addr2line’ are the same file
ln: ‘/usr/bin/alsaloop’ and ‘/usr/bin/alsaloop’ are the same file
ln: ‘/usr/bin/alsamixer’ and ‘/usr/bin/alsamixer’ are the same file
ln: ‘/usr/bin/alsaucm’ and ‘/usr/bin/alsaucm’ are the same file
ln: ‘/usr/bin/amidi’ and ‘/usr/bin/amidi’ are the same file
ln: ‘/usr/bin/amixer’ and ‘/usr/bin/amixer’ are the same file
ln: ‘/usr/bin/amuFormat.sh’ and ‘/usr/bin/amuFormat.sh’ are the same file
ln: ‘/usr/bin/apg’ and ‘/usr/bin/apg’ are the same file
ln: ‘/usr/bin/apgbfm’ and ‘/usr/bin/apgbfm’ are the same file
ln: ‘/usr/bin/aplay’ and ‘/usr/bin/aplay’ are the same file
ln: ‘/usr/bin/aplaymidi’ and ‘/usr/bin/aplaymidi’ are the same file
ln: ‘/usr/bin/apport-bug’ and ‘/usr/bin/apport-bug’ are the same file
ln: ‘/usr/bin/apport-cli’ and ‘/usr/bin/apport-cli’ are the same file
ln: ‘/usr/bin/apport-unpack’ and ‘/usr/bin/apport-unpack’ are the same file
ln: ‘/usr/bin/appres’ and ‘/usr/bin/appres’ are the same file
ln: ‘/usr/bin/apt’ and ‘/usr/bin/apt’ are the same file
ln: ‘/usr/bin/apt-cache’ and ‘/usr/bin/apt-cache’ are the same file
ln: ‘/usr/bin/apt-cdrom’ and ‘/usr/bin/apt-cdrom’ are the same file
ln: ‘/usr/bin/apt-config’ and ‘/usr/bin/apt-config’ are the same file
ln: ‘/usr/bin/aptdcon’ and ‘/usr/bin/aptdcon’ are the same file
ln: ‘/usr/bin/apt-extracttemplates’ and ‘/usr/bin/apt-extracttemplates’ are the same file
ln: ‘/usr/bin/apt-ftparchive’ and ‘/usr/bin/apt-ftparchive’ are the same file
ln: ‘/usr/bin/apt-get’ and ‘/usr/bin/apt-get’ are the same file
ln: ‘/usr/bin/apt-key’ and ‘/usr/bin/apt-key’ are the same file
ln: ‘/usr/bin/apt-mark’ and ‘/usr/bin/apt-mark’ are the same file
ln: ‘/usr/bin/apt-sortpkgs’ and ‘/usr/bin/apt-sortpkgs’ are the same file
ln: ‘/usr/bin/apturl’ and ‘/usr/bin/apturl’ are the same file
ln: ‘/usr/bin/apturl-gtk’ and ‘/usr/bin/apturl-gtk’ are the same file
ln: ‘/usr/bin/ar’ and ‘/usr/bin/ar’ are the same file
ln: ‘/usr/bin/Arch’ and ‘/usr/bin/Arch’ are the same file
ln: ‘/usr/bin/arecordmidi’ and ‘/usr/bin/arecordmidi’ are the same file
ln: ‘/usr/bin/arm2hpdl’ and ‘/usr/bin/arm2hpdl’ are the same file
ln: ‘/usr/bin/arping’ and ‘/usr/bin/arping’ are the same file
ln: ‘/usr/bin/as’ and ‘/usr/bin/as’ are the same file
ln: ‘/usr/bin/aseqdump’ and ‘/usr/bin/aseqdump’ are the same file
ln: ‘/usr/bin/aseqnet’ and ‘/usr/bin/aseqnet’ are the same file
ln: ‘/usr/bin/aspell’ and ‘/usr/bin/aspell’ are the same file
ln: ‘/usr/bin/aspell-import’ and ‘/usr/bin/aspell-import’ are the same file
ln: ‘/usr/bin/atobm’ and ‘/usr/bin/atobm’ are the same file
ln: ‘/usr/bin/autoconf’ and ‘/usr/bin/autoconf’ are the same file
ln: ‘/usr/bin/autoheader’ and ‘/usr/bin/autoheader’ are the same file
ln: ‘/usr/bin/autom4te’ and ‘/usr/bin/autom4te’ are the same file
ln: ‘/usr/bin/automake-1.15’ and ‘/usr/bin/automake-1.15’ are the same file
...
このエラーは、すべてのファイルでは発生せず、ほとんどのファイルで発生することに注意してください。
これはの出力です
`ls -la | grep '\->'
lrwxrwxrwx 1 root root 13 May 23 19:16 2to3 -> /usr/bin/2to3
lrwxrwxrwx 1 root root 16 May 23 19:16 aclocal -> /usr/bin/aclocal
lrwxrwxrwx 1 root root 10 Sep 3 2015 add-patch -> edit-patch
lrwxrwxrwx 1 root root 21 May 23 19:16 appletviewer -> /usr/bin/appletviewer
lrwxrwxrwx 1 root root 23 May 23 19:16 apport-collect -> /usr/bin/apport-collect
lrwxrwxrwx 1 root root 16 May 23 19:16 apropos -> /usr/bin/apropos
lrwxrwxrwx 1 root root 27 May 23 19:16 apt-add-repository -> /usr/bin/apt-add-repository
lrwxrwxrwx 1 root root 16 May 23 19:16 arecord -> /usr/bin/arecord
lrwxrwxrwx 1 root root 18 May 23 19:16 assistant -> /usr/bin/assistant
lrwxrwxrwx 1 root root 2 Jan 10 2015 atq -> at
lrwxrwxrwx 1 root root 2 Jan 10 2015 atrm -> at
lrwxrwxrwx 1 root root 17 May 23 19:16 automake -> /usr/bin/automake
lrwxrwxrwx 1 root root 29 May 23 19:16 avahi-browse-domains -> /usr/bin/avahi-browse-domains
lrwxrwxrwx 1 root root 30 May 23 19:16 avahi-publish-address -> /usr/bin/avahi-publish-address
lrwxrwxrwx 1 root root 30 May 23 19:16 avahi-publish-service -> /usr/bin/avahi-publish-service
lrwxrwxrwx 1 root root 30 May 23 19:16 avahi-resolve-address -> /usr/bin/avahi-resolve-address
lrwxrwxrwx 1 root root 32 May 23 19:16 avahi-resolve-Host-name -> /usr/bin/avahi-resolve-Host-name
lrwxrwxrwx 1 root root 21 May 24 18:16 awk -> /etc/alternatives/awk
lrwxrwxrwx 1 root root 12 May 23 19:16 c++ -> /usr/bin/c++
lrwxrwxrwx 1 root root 12 May 23 19:16 c89 -> /usr/bin/c89
lrwxrwxrwx 1 root root 12 May 23 19:16 c99 -> /usr/bin/c99
lrwxrwxrwx 1 root root 12 May 23 19:16 cal -> /usr/bin/cal
lrwxrwxrwx 1 root root 18 May 23 19:16 captoinfo -> /usr/bin/captoinfo
lrwxrwxrwx 1 root root 11 May 23 19:16 cc -> /usr/bin/cc
lrwxrwxrwx 1 root root 17 May 23 19:16 cdrecord -> /usr/bin/cdrecord
lrwxrwxrwx 1 root root 14 May 23 19:16 chacl -> /usr/bin/chacl
lrwxrwxrwx 1 root root 16 May 23 19:16 chardet -> /usr/bin/chardet
lrwxrwxrwx 1 root root 17 May 23 19:16 chardet3 -> /usr/bin/chardet3
lrwxrwxrwx 1 root root 16 May 23 19:16 charmap -> /usr/bin/charmap
lrwxrwxrwx 1 root root 20 May 23 19:16 combinediff -> /usr/bin/combinediff
lrwxrwxrwx 1 root root 16 May 23 19:16 compose -> /usr/bin/compose
lrwxrwxrwx 1 root root 12 May 23 19:16 cpp -> /usr/bin/cpp
lrwxrwxrwx 1 root root 14 May 23 19:16 ctags -> /usr/bin/ctags
lrwxrwxrwx 1 root root 15 May 23 19:16 ctstat -> /usr/bin/ctstat
lrwxrwxrwx 1 root root 8 Sep 3 2015 cvs-debc -> cvs-debi
lrwxrwxrwx 1 root root 9 Sep 3 2015 dch -> debchange
lrwxrwxrwx 1 root root 4 Sep 3 2015 debc -> debi
lrwxrwxrwx 1 root root 17 May 23 19:16 designer -> /usr/bin/designer
lrwxrwxrwx 1 root root 26 May 23 19:16 desktop-file-edit -> /usr/bin/desktop-file-edit
lrwxrwxrwx 1 root root 16 May 23 19:16 dh_pypy -> /usr/bin/dh_pypy
lrwxrwxrwx 1 root root 19 May 23 19:16 dh_python3 -> /usr/bin/dh_python3
lrwxrwxrwx 1 root root 16 May 23 19:16 dotlock -> /usr/bin/dotlock
lrwxrwxrwx 1 root root 17 May 23 19:16 dumpkeys -> /usr/bin/dumpkeys
lrwxrwxrwx 1 root root 16 May 23 19:16 ebrowse -> /usr/bin/ebrowse
lrwxrwxrwx 1 root root 13 May 23 19:16 edit -> /usr/bin/edit
lrwxrwxrwx 1 root root 15 May 23 19:16 editor -> /usr/bin/editor
lrwxrwxrwx 1 root root 14 May 23 19:16 emacs -> /usr/bin/emacs
lrwxrwxrwx 1 root root 16 May 23 19:16 emacs24 -> /usr/bin/emacs24
lrwxrwxrwx 1 root root 20 May 23 19:16 emacsclient -> /usr/bin/emacsclient
lrwxrwxrwx 1 root root 14 May 23 19:16 etags -> /usr/bin/etags
lrwxrwxrwx 1 root root 11 May 23 19:16 ex -> /usr/bin/ex
lrwxrwxrwx 1 root root 17 May 23 19:16 extcheck -> /usr/bin/extcheck
lrwxrwxrwx 1 root root 12 May 23 19:16 f77 -> /usr/bin/f77
lrwxrwxrwx 1 root root 12 May 23 19:16 f95 -> /usr/bin/f95
lrwxrwxrwx 1 root root 17 May 23 19:16 fakeroot -> /usr/bin/fakeroot
lrwxrwxrwx 1 root root 16 May 23 19:16 firefox -> /usr/bin/firefox
lrwxrwxrwx 1 root root 17 May 23 19:16 flipdiff -> /usr/bin/flipdiff
lrwxrwxrwx 1 root root 23 May 23 19:16 foo2zjs-icc2ps -> /usr/bin/foo2zjs-icc2ps
lrwxrwxrwx 1 root root 21 May 23 19:16 foomatic-rip -> /usr/bin/foomatic-rip
lrwxrwxrwx 1 root root 12 May 23 19:16 frm -> /usr/bin/frm
lrwxrwxrwx 1 root root 13 May 23 19:16 from -> /usr/bin/from
lrwxrwxrwx 1 root root 12 May 23 19:16 ftp -> /usr/bin/ftp
lrwxrwxrwx 1 root root 12 May 23 19:16 g++ -> /usr/bin/g++
lrwxrwxrwx 1 root root 12 May 23 19:16 gcc -> /usr/bin/gcc
lrwxrwxrwx 1 root root 15 May 23 19:16 gcc-ar -> /usr/bin/gcc-ar
lrwxrwxrwx 1 root root 15 May 23 19:16 gcc-nm -> /usr/bin/gcc-nm
lrwxrwxrwx 1 root root 19 May 23 19:16 gcc-ranlib -> /usr/bin/gcc-ranlib
lrwxrwxrwx 1 root root 18 May 23 19:16 gconftool -> /usr/bin/gconftool
lrwxrwxrwx 1 root root 13 May 23 19:16 gcov -> /usr/bin/gcov
lrwxrwxrwx 1 root root 18 May 23 19:16 gcov-tool -> /usr/bin/gcov-tool
lrwxrwxrwx 1 root root 13 May 23 19:16 geqn -> /usr/bin/geqn
lrwxrwxrwx 1 root root 12 May 23 19:16 GET -> /usr/bin/GET
lrwxrwxrwx 1 root root 16 May 23 19:16 getfacl -> /usr/bin/getfacl
lrwxrwxrwx 1 root root 17 May 23 19:16 gfortran -> /usr/bin/gfortran
...
編集:@Stephen Kittのアドバイスに従って、私はこの問題を解決するためにdebsumを使用しようとしています。非常に多くのプログラムが壊れているため、debsumsパッケージを正しくダウンロードするのに少し手間がかかりましたが、ようやくdebsums -c
を実行することができました。これは出力です:
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
sh: 1: awk: Too many levels of symbolic links
したがって、debsumsが正しくインストールされていないようです。
編集:awk
を修正した後、debsumを実行できましたが、次の出力が得られます。
/boot/vmlinuz-4.2.0-16-generic
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/__init__.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/config.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/cupshelpers.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/installdriver.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/openprinting.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/ppds.cpython-34.pyc
/usr/lib/python3/dist-packages/cupshelpers/__pycache__/xmldriverprefs.cpython-34.pyc
これは励みになりますが、多くの変更が欠けていることを少し心配しています。 my /usr/bin
ディレクトリの多くの異なる部分から削除された(> 100)すべてのシンボリックリンクを考えると、すべての変更がmy pythonライブラリにあることは少し奇妙です。これは非常にありそうもないように思われませんか、それともdebsums
は実際に正しく機能していますか?
Python3インストールを置き換えるだけでよいと想定して、どうすればよいですか? dpkgを使用してこのファイルをダウンロードする方法がまだわかりません。 dpkg -S python3
を使用して検索すると、.debファイルではなく、パッケージの名前が表示されます。しかし、単にグーグルして関連する.debファイルをダウンロードしても、ファイルは正しい場所に配置されません。これは簡単な質問のように聞こえるかもしれませんが、問題を解決するための基本的な方法をまだ知りません。
ご存知のように、ln
はシンボリックリンクのみを置き換えました。これを修正するには、不足しているシンボリックリンクを提供するパッケージを少なくとも再インストールする必要があります...
find
の-L
オプションを-type l
テストと組み合わせて使用すると、壊れたシンボリックリンクを識別できます。次に、dpkg -S
は、ほとんどの場合、対応するパッケージを識別します。
dpkg -S $(find -L /usr/bin -type l)
これをフィルタリングしてapt-get
にフィードすると、パッケージを再インストールできます。
apt-get --reinstall install $(dpkg -S $(find -L /usr/bin -type l) | grep -v "diversion by" | cut -d: -f1)
これでもいくつかの壊れたシンボリックリンクが残り、ほとんどが/etc/alternatives
の代替に対応します。これらは次のようなものを使用して修正できます
for file in $(find -L /usr/bin -type l -printf "%f\n"); do \
if [ -e "/etc/alternatives/${file}" ]; then \
ln -sf "/etc/alternatives/${file}" "/usr/bin/${file}"; \
fi; \
done
(おそらく、何が行われるかを確認するために、ln -sf
をecho
に置き換えたいと思うでしょう...)
(以前にdebsums
の使用を提案しましたが、シンボリックリンクがハッシュされていないため機能しません。)