【gloudコマンド】ファイアーウォール ルールへ複数IPを設定する
いろんなサイトをサーバー移行しています。
その中で、とあるサイトがかなり攻撃を受けるらしく、ストレージをS3に持って行き、サクラVPSで運用しているといったことを聞き、それならいっそのこと攻撃元の海外を全て遮断してしまえばいいんじゃないかと思いやってみました。
gloudコマンドのインストール
まずcurl
でとってくる。
$ curl https://sdk.cloud.google.com | bash
Y/n
と何回か聞かれるけど、基本的に全部Enter
でおk。
最後に
Enter a path to an rc file to update, or leave blank to use [/home/User/.bashrc]:
と聞かれるので、bashrcで管理してる人は特に意識せずそのままEnter
。僕はこのまま行きました。
zsh
だとめんどくさいみたいですけど。
.bashrc
を読み込みなおしてwhichでパスが表示されればおk。
$ source ~/.bashrc $ which gloud ~/google-cloud-sdk/bin/gcloud
gloud initで認証
自分のアカウントにログインします。
$ gcloud init Welcome! This command will take you through the configuration of gcloud. Your current configuration has been set to: [default] You can skip diagnostics next time by using the following flag: gcloud init --skip-diagnostics Network diagnostic detects and fixes local network connection issues. Checking network connection...done. Reachability Check passed. Network diagnostic (1/1 checks) passed. You must log in to continue. Would you like to log in (Y/n)? y
y
もしくはEnter
を押すと、ブラウザが開いて、googleのアカウントログイン画面に飛びます。
ログインがうまく行けば認証完了。 ターミナルに戻ると、
既存のブラウザ セッションに新しいウィンドウが作成されました。 You are logged in as: [example@test.com]. Pick cloud project to use: [1] test-project [2] testtest-project Please enter numeric choice or text value (must exactly match list item):
と、プロジェクトを既に作成していれば、候補が出てくるので適当に選択します。
次に、リージョンを選択すれば終わりです。僕は面倒だったのでデフォルトのままにしてます。
中国、韓国、北朝鮮のIPを遮断
する前に、リストを作成します。
以下にアクセス。
https://ipv4.fetus.jp/krfilter
cn,kr,kp
のnginx用の雛形を開きます。
全てコピーして、vimで42.156.0.0/19,
の形に総置換、総整形します。
これでおk。
実際には250行ごとに改行をなくす置換したものを使っていきます。
firewallルールの作成
ブラウザ上で作成したものに対してupdateかければ簡単です。
雛形こんな感じ。
ソースIPの範囲は適当で大丈夫です。あとからupdateかけるので。
ちなみに、この一つのルールに255個しか設定できないみたいなので、何個も作る形になります。
根気、大事。
gloudコマンドでfirewallをアップデート
gcloudコマンドはTAB
補完が優秀ですね。
それはおいておいて、今回の対象ルールはchina-block-01
です。
前に準備しておいた、中国IPを250個くらいコピーして--source-ranges
オプションの後にくっつけます。
$ gloud compute firewall-rules update chine-block-01 \ --source-ranges 1.0.1.0/24,1.0.2.0/23,1.0.8.0/21,1.0.32.0/19,1.1.0.0/24,1.1.2.0/23,1.1.4.0/22,1.1.8.0/21,1.1.16.0/20,1.1.32.0/19,1.2.0.0/23,1.2.2.0/24,1.2.4.0/22,1.2.8.0/21,1.2.16.0/20,1.2.32.0/19,1.2.64.0/18,1.3.0.0/16,1.4.1.0/24,1.4.2.0/23,1.4.4.0/22,1.4.8.0/21,1.4.16.0/20,1.4.32.0/19,1.4.64.0/18,1.8.0.0/16,1.10.0.0/21,1.10.8.0/23,1.10.11.0/24,1.10.12.0/22,1.10.16.0/20,1.10.32.0/19,1.10.64.0/18,1.11.0.0/16,1.12.0.0/14,1.16.0.0/14,1.24.0.0/13,1.45.0.0/16,1.48.0.0/14,1.56.0.0/13,1.68.0.0/14,1.80.0.0/12,1.96.0.0/12,1.116.0.0/14,1.176.0.0/15,1.180.0.0/14,1.184.0.0/15,1.188.0.0/14,1.192.0.0/13,1.201.0.0/16,1.202.0.0/15,1.204.0.0/14,1.208.0.0/12,1.224.0.0/11,14.0.0.0/21,14.0.12.0/22,14.0.32.0/19,14.0.64.0/18,14.1.0.0/22,14.1.24.0/22,14.1.96.0/22,14.1.108.0/22,14.4.0.0/14,14.16.0.0/12,14.32.0.0/11,14.64.0.0/11,14.102.128.0/22,14.102.156.0/22,14.102.180.0/22,14.103.0.0/16,14.104.0.0/13,14.112.0.0/12,14.128.128.0/17,14.129.0.0/16,14.130.0.0/15,14.134.0.0/15,14.138.0.0/16,14.144.0.0/12,14.192.60.0/22,14.192.76.0/22,14.192.80.0/20,14.196.0.0/15,14.204.0.0/15,14.206.0.0/16,14.208.0.0/12,27.0.128.0/21,27.0.160.0/21,27.0.188.0/22,27.0.204.0/22,27.0.208.0/21,27.0.236.0/22,27.1.0.0/16,27.8.0.0/13,27.16.0.0/12,27.34.232.0/21,27.35.0.0/16,27.36.0.0/14,27.40.0.0/13,27.50.40.0/21,27.50.128.0/17,27.54.72.0/21,27.54.152.0/21,27.54.192.0/18,27.96.128.0/18,27.98.208.0/20,27.98.224.0/19,27.99.128.0/17,27.100.128.0/17,27.101.0.0/16,27.102.0.0/15,27.106.128.0/18,27.106.204.0/22,27.109.32.0/19,27.109.124.0/22,27.111.96.0/19,27.112.0.0/18,27.112.80.0/20,27.112.112.0/21,27.112.128.0/17,27.113.0.0/17,27.113.128.0/18,27.115.0.0/16,27.116.44.0/22,27.116.64.0/18,27.116.128.0/17,27.117.0.0/16,27.118.64.0/18,27.118.128.0/17,27.119.0.0/16,27.120.0.0/18,27.121.72.0/21,27.121.120.0/21,27.122.128.0/17,27.123.232.0/22,27.124.128.0/17,27.125.0.0/17,27.126.0.0/18,27.128.0.0/15,27.131.220.0/22,27.144.0.0/16,27.148.0.0/14,27.152.0.0/13,27.160.0.0/11,27.192.0.0/11,27.224.0.0/14,27.232.0.0/13,27.255.64.0/18,36.0.0.0/22,36.0.8.0/21,36.0.16.0/20,36.0.32.0/19,36.0.64.0/18,36.0.128.0/17,36.1.0.0/16,36.4.0.0/14,36.16.0.0/12,36.32.0.0/14,36.36.0.0/16,36.37.0.0/19,36.37.36.0/23,36.37.39.0/24,36.37.40.0/21,36.37.48.0/20,36.38.0.0/15,36.40.0.0/13,36.48.0.0/15,36.51.0.0/16,36.56.0.0/13,36.96.0.0/11,36.128.0.0/10,36.192.0.0/11,36.248.0.0/14,36.254.0.0/16,36.255.116.0/22,36.255.128.0/22,36.255.164.0/22,36.255.172.0/22,36.255.176.0/22,36.255.220.0/22,39.0.0.0/24,39.0.2.0/23,39.0.4.0/22,39.0.8.0/21,39.0.16.0/20,39.0.32.0/19,39.0.64.0/18,39.0.128.0/17,39.4.0.0/14,39.16.0.0/12,39.64.0.0/11,39.96.0.0/13,39.104.0.0/14,39.108.0.0/16,39.112.0.0/12,39.128.0.0/10,40.72.0.0/15,40.125.128.0/17,40.126.64.0/18,42.0.0.0/22,42.0.8.0/21,42.0.16.0/21,42.0.24.0/22,42.0.32.0/19,42.0.128.0/17,42.1.0.0/19,42.1.32.0/20,42.1.48.0/21,42.1.56.0/22,42.1.128.0/17,42.4.0.0/14,42.8.0.0/13,42.16.0.0/12,42.32.0.0/12,42.48.0.0/13,42.56.0.0/14,42.62.0.0/17,42.62.128.0/19,42.62.160.0/20,42.62.180.0/22,42.62.184.0/21,42.63.0.0/16,42.80.0.0/15,42.82.0.0/16,42.83.64.0/20,42.83.80.0/22,42.83.88.0/21,42.83.96.0/19,42.83.128.0/17,42.84.0.0/14,42.88.0.0/13,42.96.64.0/19,42.96.96.0/21,42.96.108.0/22,42.96.112.0/20,42.96.128.0/17,42.97.0.0/16,42.99.0.0/18,42.99.64.0/19,42.99.96.0/20,42.99.112.0/22,42.99.120.0/21,42.100.0.0/14,42.120.0.0/15,42.122.0.0/16,42.123.0.0/19,42.123.36.0/22,42.123.40.0/21,42.123.48.0/20,42.123.64.0/18,42.123.128.0/17,42.128.0.0/12 Updated [https://www.googleapis.com/compute/v1/projects/あなたのプロジェクト名/global/firewalls/china-block-01].
問題なければupdated
と出てきます
GCPのファイアーウォールルールを確認すると。。。
(入りきれてないですが)ちゃんと更新されてるのが確認できました\(^o^)/
おわりに
https://cloud.google.com/compute/docs/reference/rest/v1/firewalls/update
ここのTry this APIが固まって使えなかったので、gcloudコマンド入れてやる次第になったのですが、複数一気に追加できるのは凄い便利です。
updateではなくcreateで作った方がいいなと思ったり思わなかったり。
追記
最終的にファイアーウォールルールを24個も作成しました。
同じ作業の繰り返しでうつになるかとおもった。
Google Compute Engineのsshが突然接続できなくなった
いろんなサーバーをGCPに移行していっているんですが、突然ブラウザ上のSSHコンソールが接続できなくなったので対処法を書こうと思います。
環境
原因不明
文字通り突然接続できなくなりました。
他プロジェクトのVMインスタンスでは接続できるのにどうしてこんなことが起こったのか謎。
ちなみにSSHはカスタムポートで動くように設定してます。
ファイアーウォールルールも設定済みで、sshd_configにも記述済みの状態です。
マジ謎。
エラーメッセージ
プロジェクト メタデータへの鍵転送に異常に長い時間がかかっています。インスタンス メタデータに転送する方が所要時間は短くなる可能性がありますが、鍵が転送されるのはこの VM のみになります。この仮想マシンから他の仮想マシンに SSH 接続する場合は、鍵を適切に転送する必要があります。 鍵をインスタンス メタデータに転送する場合は、こちらをクリックしてください。この設定は後で変更できず、有効にした後に、[インスタンスの詳細] ページで無効にする必要があります。
その後に一瞬ですがシリアルコンソール
云々という文言が出てきたので、とりあえずVMインスタンスからシリアルコンソールを開きました。
開けない(disabledになっている)方はインスタンスの編集からシリアルポート接続を許可
にチェックを入れてください。
やったこと
VMインスタンスから該当のインスタンス名をクリック、その後「シリアルコンソールに接続」で接続できます。
接続するとえげつない量のエラーが。。。
vm google-accounts: ERROR Exception calling the response handler. [Errno 28] No space left on device.#012Traceback (most recent call last):#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/metadata_watcher.py", line 196, in WatchMetadata#012 handler(response)#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/accounts/accounts_daemon.py", line 263, in HandleAccounts#012 self.utils.SetConfiguredUsers(desired_users.keys())#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/accounts/accounts_utils.py", line 288, in SetConfiguredUsers#012 updated_users.flush()#012IOError: [Errno 28] No space left on device
なんか容量っぽい・・・。
# df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 15716368 15716348 20 100% / devtmpfs 3481172 0 3481172 0% /dev tmpfs 3488804 0 3488804 0% /dev/shm tmpfs 3488804 17828 3470976 1% /run tmpfs 3488804 0 3488804 0% /sys/fs/cgroup tmpfs 697764 0 697764 0% /run/user/1000 tmpfs 697764 0 697764 0% /run/user/0
100%
ということで少しファイル数を減らして、容量をあけることにします。
シリアルコンソール接続中も継続的にエラーが出てきてたのですが、容量を開けたら出なくなりました。
SSHコンソールに接続
だめですねぇ :)
もう一回シリアルコンソールに接続して、firewallとselinuxがdisableになっているか確認します。
$ sudo systemctl is-enabled firewalld disabled $ getenforce disabled
どっちもdisabledになってるね。
とりあえずよくわからんからsudo yum update
すると、固まりました\(^o^)/。
ctrl + c
してもダメ、ウィンドウ閉じて開き直してもダメ。
いまのところ打つ手なし。
諦めてローカルからSSH
正直ブラウザのコンソールだと感度悪いし、起動速度もそんなに速くないです。
これを機に大人しくローカルから接続する方法に切り替えました。
$ cd ~/.ssh & ssh-keygen -t rsa -b 4096 -C "rdwbocungelt5@gmail.com" #=> あとは順をおって作成するだけ。
出来上がったrsa.pub
をコピーして、GCEのメタデータに貼っつけます。
Compute Engine -> メタデータ -> SSH認証鍵 -> 編集
で鍵を貼り付けるだけです。
おわりに
ブラウザからSSHコンソールに接続する方法は解決できませんでしたが、暫定的にローカルからSSHすることで解決させました。
解決策が見つかれば後日追記等したいと思います。
後日追記(7 / 31)
久しぶりにブラウザからSSHコンソール開いてみたら何の問題もなく開きました。
時間が解決してくれるってことですかね。
失恋じゃねえんだから。
MySQLでユーザーを作成するとAccess Deniedで弾かれる
はい、出ました。
またMySQLのエラー。
zabbixでDB周りの監視をやるための設定をしている時に詰まりました。
ハマった経緯
いつもこちらのサイトを参考にさせてもらってるんですが、 MySQL監視用ユーザー作成の部分で詰まりました。
$ mysql -u root -p password: MariaDB [(none)]> grant process on *.* to zabbixagent@localhost identified by '<password>'; ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
はい、エラーです。
対処法
まずはmysqlを止める。
$ service mysqld stop
既にzabbixで監視対象にしているので、調査しているときに障害通知メールが来ました。
zabbix優秀ですね。
次に、 --skip-grant-tables
で立ち上げ直す。
$ mysqld_safe --skip-grant-tables
そして、/etc/my.cnf.d/server.cnf
にskip-grant-tablesを追加する。
$ vim /etc/my.cnf.d/server.cnf ・ ・ ・ [mysqld] ・ ・ ・ skip-grant-tables #=> 僕は最後の行に入れました [galera] ・ ・ ・
ここまで終わったら、mysqlを立ち上げ直す。
$ service mysqld start
ここで、mysqlにログインしてみます。--skip-grant-tables
をやっているのでパスワード無しでいけます。
$ mysql -u root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.1.34-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
念願のcreate userをやってみると・・・
MariaDB [(none)]> create user zabbixagent identified by 'password'; ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement
ん〜、だめっぽい。
データベースを見てみると、mysql
ってのができているのでみてみると・・・
MariaDB [(none)]> use mysql; MariaDB[(mysql)]> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | column_stats | | columns_priv | | db | | event | | func | | general_log | | gtid_slave_pos | | help_category | | help_keyword | | help_relation | | help_topic | | host | | index_stats | | innodb_index_stats | | innodb_table_stats | | plugin | | proc | | procs_priv | | proxies_priv | | roles_mapping | | servers | | slow_log | | table_stats | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
userってとこにありそう。
いろいろ探して、ここを参考に直接userをINSERTしてみました。
ここ↓を参考
MariaDB [mysql]> INSERT INTO mysql.user SET user = 'zabbixagent', host = 'localhost', password = Password('password'), -> Select_priv = 'y', -> Insert_priv = 'y', -> Update_priv = 'y', -> Delete_priv = 'y', -> Create_priv = 'y', -> Drop_priv = 'y', -> Reload_priv = 'y', -> Shutdown_priv = 'y', -> Process_priv = 'y', -> File_priv = 'y', -> Grant_priv = 'y', -> References_priv = 'y', -> Index_priv = 'y', -> Alter_priv = 'y', -> Show_db_priv = 'y', -> Super_priv = 'y', -> Create_tmp_table_priv = 'y', -> Lock_tables_priv = 'y', -> Execute_priv = 'y', -> Repl_slave_priv = 'y', -> Repl_client_priv = 'y', -> Create_view_priv = 'y', 2 # These groups are read by MariaDB server. -> Show_view_priv = 'y', -> Create_routine_priv = 'y', -> Alter_routine_priv = 'y', -> Create_user_priv = 'y', -> Event_priv = 'y', -> Trigger_priv = 'y', -> Create_tablespace_priv = 'y'; Query OK, 1 row affected, 4 warnings (0.00 sec)
おっ、いけた。
userテーブルを見てみると先ほど入れたユーザーが入ってました。
いとをかし。
あと始末
先ほど追加した/etc/my.cnf.d/server.cnf
のskip-grant-tables
を削除し、mysqlを起動し直します。
これでおkです。
【備忘録】service nginx restartが失敗し、nginx.pidに苦しめられた
サーバー移行でkusanagiのwordpressを使うことになり、もちろんそれに伴ってnginxの修正が必要でした。
nginxは前の会社でも苦しめられた経験があったので、懸念してましたが見事にハマりましたね。
環境
エラー内容
/etc/nginx/nginx.conf
のuserを変更し、service nginx restart
をしました(nginx -s reload
だったかも)。
すると。。。
$ service nginx restart nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
/var/run/nginx.pid
がないみたい。
なので、ファイルを作ってもう一度nginxを立ち上げます。
$ touch /var/run/nginx.pid && service nginx restart nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
invalid PID number
これでぐぐると、nginxのプロセス関係でエラってるっぽい。
解決策
$ service nginx stop $ ps aux | grep nginx
まず、nginxを止めて、出てくるnginxのプロセスを全てkill
してあげる。
※ 該当プロセス全削除は、以下の記事を参照
そしてnginxを起動し直すと。。。
$ service nginx start Redirecting to /bin/systemctl start nginx.service
無事起動できました\(^o^)/
【雑記】やっぱりタッチクリック機能は便利でした
というのも、ついこの前大阪出張で受けたセミナーでThinkPadを使った時からずっと考えてました。
つーか、そもそもThinkPadを買わなかったことを後悔しているんですが。。。
ThinkPadはご存知の通り、トラックパッドの範囲は小さくて手のひら当たらんし、細かい操作のできる赤乳首がある。
非常に使いやすいです。
前の会社でmacを使っていたけど、ThinkPadの使いやすさは遜色ないです。
OSが窓でなければね。
てなわけで、ThinkPadのタッチクリックに感動したので、自分のspectre x360でも復活させました。
まず一つ目の問題
spectre x360をご存知の方はわかる通り、トラックパッドの範囲が異常に広いです。
何も設定せずに使うと、手のひらでマウスカーソルが動き、イライラの絶頂に達します。
いらいらエクスタシー
まずはトラックパッドの検出範囲を変更してください。
過去記事
↓
smot93516.hatenablog.jp
2つめの問題
感度が良すぎる
敏感すぎです。まじで。
なので、タッチ感度を変更します。
過去記事と同じファイル(/etc/X11/xorg.conf.d/50-synaptics.conf
)を変更します。
Option
でFingerHigh
というものを設定。
押下時の強さを変更します。
多分50〜設定していきながら調整していけばいいと思います。
↓僕の設定
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Option "AreaLeftEdge" "2000" Option "AreaRightEdge" "5000" Option "FingerHigh" "55" EndSection
だいたい55くらいでいい感じの感度になりました。
おわり
ちなみにspectre x360にデュアルブートしてubuntuを入れてる状態なんですが、タッチパッドのクリック精度があまりよくないです。
それで最近悩んでたので良い機会でした。
ちなみにHPのサポートページに行くとバグってますね。
バグレットパッカード
↓
support.hp.com
非常に困ってます、HPさん。
しっかりしてください。
Androidでgif動画を流す(Kotlin)
Glideを使えば簡単にgif動画を動かすことが出来ます。
Glideの最新はこちら。
↓謎の設計図共有サイト「ギットハブ」
導入方法はリンク先に乗ってます。
環境
- ubuntu 16.04.1
- kotlin 1.2.41
- android studio 3.1.2
Glide導入
一応やっておきます。
最新が4.7.1
です。常にギットハブを確認して導入するようにしてください。
dependencies { ・ ・ ・ implementation 'com.github.bumptech.glide:glide:4.7.1' ・ ・ ・ }
たったこれだけ。アプリケーション配下のgradleへ記述したらおk。
gifのリソースを準備する
app/res/raw
配下に入れます。test.gif
ファイルがあると仮定して進めます。
ImageViewを準備する
gif動画を流すレイアウトファイルにImageViewを準備します。
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".CongratsActivity"> <ImageView android:id="@+id/gifView" android:layout_width="304dp" android:layout_height="251dp" android:layout_marginBottom="56dp" android:layout_marginEnd="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginStart="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.125" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout>
ImageView
のIDはgifView
にしてます。他の設定は適当です。
Activity側でgifをセット
package ~~~~~~~~ import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.os.Handler import com.bumptech.glide.Glide import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val gifMovie: Int = R.raw.test // gif画像のセット Glide.with(this).load(gifMovie).into(gifView) } }
たったこれだけで動きます。素晴らしいですよね。
おわりに
細かい設定は謎の設計図共有サイトを見てやってみてください。
kotlinでgif動画を流すのがなかなかなかったので記事にしてみましたー。
では。
【備忘録】UbuntuへMuseScore2をインストール
公式を見るのが一番はやいかもしれないです。
ただアイコンの作成とかにほんのちょっとだけつまずいたのでメモとして。
環境
- ubuntu 16.04.1
- elementary OS 0.4.1 Loki(64bit)
MuseScoreのAppImageを取得
上記URLからAppImageをダウンロードします。
僕のUbuntuは64bitなのでNew computers (64-bit)
を選択。
画面遷移し、少しするとダウンロードされます。
ディレクトリの作成から設定
現時点で特に何も設定してなければDownload
ディレクトリに保存されていると思います。
Downloads
ディレクトリ整理をしたときに誤ってMuseScoreのAppImageファイルを削除してしまったら大変です。
なので、MuseScore用のディレクトリをhome
ディレクトリに作成し、AppImageを移動させます。
$ cd ~ && mkdir MuseScore $ mv ~/Downloads/MuseScore-2.2.1-x86_64.AppImage ~/MuseScore $ ls ~/MuseScore MuseScore-2.2.1-x86_64.AppImage
これでおk
アイコンの作成
毎回ターミナルでAppImageを叩くのは面倒くさいので、デスクトップアイコンを作成します。
まずアイコンをgoogleさんから拝借します。
それをMuseScore
ディレクトリに配置。
名前は適当に musescore-icon.png
とかにしときます。
次にデスクトップアイコンの設定です。
Ubuntuのデスクトップアイコンは/usr/share/applications
配下に設定ファイルがあります。
ここにmusescore.desktop
を作成。
$ sudo touch musescore.desktop
vimで設定を記述。
$ sudo vim musescore.desktop [Desktop Entry] Encoding=UTF-8 Version=2.2.1 Type=Application Name=MuseScore Icon=/home/users/MuseScore/musescore-icon.png Path=/home/users/MuseScore Exec=/home/users/MuseScore/MuseScore-2.2.1-x86_64.AppImage StartupNotify=true # usersは自分のユーザー名 # Nameはデスクトップでの表示名
これでアプリケーションにMuseScoreが表示され、ドックに追加できるようになりました。
終わりに
他のアプリでデスクトップにアイコンを作りたい場合はこれで応用できるかと。
とりあえずLinuxでもMuseScoreが使えるのはいろいろとはかどりますね。